So wir haben es gleich geschafft. Nur noch zwei, drei Dinge.
Ich rufe die Methode
CancelAsync() auf, um den BackgroundWorker zu stoppen. Allerdings schein dann das Fenster nicht mehr zu reagieren und gestoppt wird anscheinen auch nichts:
Code:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
if (backgroundWorker1.CancellationPending)
{
lblStatusText.Text = resManager.GetString("BkWorkerUserCancel");
e.Cancel = true;
}
for (int i = 0; i < 10000000; i++)
{
backgroundWorker1.ReportProgress((int)i / 10);
Thread.Sleep(0);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
lblStatusText.Text = resManager.GetString("BkWorkerStatusRunning");
this.Update();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
lblStatusText.Text = resManager.GetString("BkWorkerStatusFinish");
}