Hallo,
in einer Klasse läuft ein Backgroundworker Asyncron. Dieser wird initialisiert und gestartet, sobald ein UserForm geöfnet wird.
Beim Schließen des UserForms werden gleich mehrere Userform-Subs aufgerufen, um die Backgroundworker zu beenden:
FormClosing, FormClosed, Closing, Closed
In allen Subs wird der Background-Worker mit CancelAsync beendet.
Der Backgroundworker selbst läuft wie folgt:
Sobald CancellationPending auf True steht sollte der Backgroundworker beendet werden. Die Ausführung der Einzelnen Befehle innerhalb der Do-Loop Schleife sind in wenigen Millisekunden erledigt.
Dennoch wird beim Beenden stets ein System.ObjektDisposedException angezeigt.
Der Fehler wird auch dann angezeigt, wenn nach dem Beenden des Backgroundworkers ( CancelAsync ) mit Sleep(1200) ganze 12 Sekunden gewartet wird.
Um ganz sicher zu gehen, wurde zusätzlich vor dem Ausführen des Befehls CancelAsync die Variable myWorker_Cancel auf true gesetzt.
Kann mir jemand erläutern, wie ein Backgroundworker gecancelt werden kann?
Vielen Dank
in einer Klasse läuft ein Backgroundworker Asyncron. Dieser wird initialisiert und gestartet, sobald ein UserForm geöfnet wird.
Beim Schließen des UserForms werden gleich mehrere Userform-Subs aufgerufen, um die Backgroundworker zu beenden:
FormClosing, FormClosed, Closing, Closed
In allen Subs wird der Background-Worker mit CancelAsync beendet.
Der Backgroundworker selbst läuft wie folgt:
Sobald CancellationPending auf True steht sollte der Backgroundworker beendet werden. Die Ausführung der Einzelnen Befehle innerhalb der Do-Loop Schleife sind in wenigen Millisekunden erledigt.
Dennoch wird beim Beenden stets ein System.ObjektDisposedException angezeigt.
Der Fehler wird auch dann angezeigt, wenn nach dem Beenden des Backgroundworkers ( CancelAsync ) mit Sleep(1200) ganze 12 Sekunden gewartet wird.
Um ganz sicher zu gehen, wurde zusätzlich vor dem Ausführen des Befehls CancelAsync die Variable myWorker_Cancel auf true gesetzt.
Kann mir jemand erläutern, wie ein Backgroundworker gecancelt werden kann?
Vielen Dank