Heim >Backend-Entwicklung >C++ >Wie schließe ich einen Hintergrundarbeiter anmutig, wenn ein Formular schließt?
Der Hintergrundarbeitsthread, wenn das elegante Verarbeitungsfenster geschlossen ist
Wenn das Fenster einen Hintergrundarbeitsthread (Hintergrundworker) initialisiert, ist es wichtig, ihn korrekt abzubrechen, wenn das Fenster geschlossen ist. Andernfalls kann es abnormal oder tödlich verursachen.
Problembeschreibung
Ein Fenster instanziierte einen Hintergrundarbeiter und aktualisierte sein Textfeld im Haupt Thread. Wenn das Schlussereignis des Fensters ausgelöst wird, wird der Hintergrundarbeiter einfach abgesagt und das ObjectDiSonPexception ist auf dem Aufruf infer () abnormal. Das Warten auf den Hintergrundbearbeiter im Abschlussvorfall führt stattdessen zu toten Schlössern, da die Operation auf Invoke () blockiert ist.
Lösung
Um dieses Problem zu lösen, muss das FormCLOS -Ereignis abgesagt werden, wenn der Hintergrundarbeiter noch ausgeführt wird. Dies kann in den folgenden Schritten implementiert werden:
Behandeln Sie das Onformclosing -Ereignis im Fenster.Überprüfen Sie, ob der Hintergrundbeamte beschäftigt ist, wenn ja, abbrechen.
Durch diese Methode kann das Fenster ohne Grund abnormale oder tote Schlösser ausgeschaltet werden, um die Eleganz des Hintergrundarbeiters zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWie schließe ich einen Hintergrundarbeiter anmutig, wenn ein Formular schließt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!