im Bereich der Multi -Thread -Programmierung ist es sehr wichtig, die Komplexität des Verwaltung des Hintergrundbetriebs zu verwalten. Eine häufige Situation ist, dass das Fenster einen Hintergrundangestellten (Hintergrundworker) verwendet, der sein eigenes Textfeld im Haupt -Thread aktualisiert. Das plötzliche Schließen des Fensters kann jedoch abnormale oder tote Schlösser verursachen.
Um dieses Problem zu lösen, muss die Wechselwirkung zwischen dem hinteren Arbeitsbereich und dem Fensterverschluss -Ereignis untersucht werden. Wenn das Hintergrund -WorkSPlay während der Handleclosenevent -Periode noch ausgeführt wird, wird es blind stornieren (über BGWORKER.CancelaSync ()), um eine Objektdisisxzeption während des nachfolgenden Aufrufs zu verursachen. Stattdessen kann das Warten auf das Hintergrundangebot auf unbestimmte Zeit in Handleclosenevent zu einem Deadlock führen.
Zum Glück wartet eine Lösung ohne Tod und abnormale Sicherheit auf uns. Diese Technologie beinhaltet die Stornierung des Formclosinus -Vorfalls, wenn sich das Hintergrundarbeitsbereich in Aktivität befindet. Dafür:
Definieren Sie ein boolesches Logo (z. B. schließen Sie es an).
Das obige ist der detaillierte Inhalt vonWie kann ich eine Form mit einem laufenden Hintergrundarbeiter anmutig schließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!