Heim >Backend-Entwicklung >C++ >Wie stoppt ich einen Hintergrundarbeiter beim Schließen eines Windows -Formulars sicher?
Der Hintergrundarbeitsthread, wenn das Fenster Windows elegant geschlossen ist
im Fensterschließungsereignis zur Verarbeitung von Ereignissen kann jedoch abnormale oder verkleidete Schlösser verursachen. bgWorker.CancelAsync()
Abnormalitäten werfen. Dies liegt daran, dass das Fenster freigegeben wird und der Haupt -Thread beendet ist. bgWorker.CancelAsync()
ObjectDisposedException
Frage 2: Der Deadlock, wenn BGWWER abgeschlossen ist
bgWorker
Lösung: Koordinieren Sie den Verschluss des Fensters und die Hintergrundarbeitsleitung, um
im Fenster, das das Ereignisverarbeitungsprogramm schließt, wenn
bgWorker
e.Cancel = true
Stellen Sie ein Logo closePending
Überprüfen Sie im Ereignisverarbeitungsprogramm das bgWorker
RunWorkerCompleted
closePending
Close()
Diese Methode kann durch die Fertigstellung des Fensters Abnormalitäten und tote Schlösser verhindern, um das Ereignis und die Fertigstellung von Das obige ist der detaillierte Inhalt vonWie stoppt ich einen Hintergrundarbeiter beim Schließen eines Windows -Formulars sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!