Stoppen des von backgroundworker @ gestarteten Threa
Ich habe ein Windows-Formular, das einen Backgroundworker verwendet. Der Backgroundworker instanziiert ein Objekt und führt dann eine Methode in diesem Objekt aus. Mein Problem ist, dass bei Verwendung von backgroundworker.CancelAsync die auf dem Remote-Objekt ausgeführte Methode nicht beendet wird. Im folgenden Beispiel wird die Dowork-Methode fortgesetzt, nachdem auf die Schaltfläche Abbrechen geklickt wurde. Zu Ihrer Information, dowork durchläuft eine Tabelle und führt einige Datenmanipulationen basierend auf den Zeilen in der Tabelle durch.
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
myObject newObject = new myObject();
newObject.dowork();
if (backgroundWorker1.CancellationPending)
{
e.Cancel = true;
backgroundWorker1.ReportProgress(0);
return;
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
if (backgroundWorker1.IsBusy) backgroundWorker1.CancelAsync();
}
Gedanken
Vielen Dan