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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage