Wichtige Punkte:
1. Wenn ein Thread im Hauptthread erstellt wird, wird der IsBackground des Threads standardmäßig auf FALSE gesetzt.
2. Wenn der Hauptthread endet, wird der Thread mit IsBackground=FALSE weiterhin ausgeführt, bis die Ausführung des Threads endet.
3. Nur Threads mit IsBackground=TRUE schließen sich mit dem Exit des Hauptthreads aus.
4. Beim Initialisieren eines Threads und Einstellung von Thread.IsBackground=true wird angezeigt, dass der Thread ein Hintergrundthread ist. Der Hintergrund-Thread verlässt den Thread, wenn der Hauptthread endet.
5. Prinzip: Solange alle Vordergrund-Threads beendet sind, ruft die CLR Abort() zu jedem aktiven Hintergrundthread auf, um die Anwendung vollständig zu beenden.
Angehängt ist ein weiteres: Wie man das Programm verlässt: Das. Close(); Wenn du einfach das aktuelle Fenster schließt und es nicht das Hauptformular ist, kannst du das Programm nicht verlassen, und wenn es einen verwalteten Thread gibt (nicht den Hauptthread), kannst du nicht sauber abschließen; Application.Exit(); Alle Nachrichten werden abgebrochen und alle Formulare verlassen, aber wenn es einen verwalteten Thread gibt (nicht den Hauptthread), kann er nicht sauber abschließen; Application.ExitThread(); alle Nachrichten im aufrufenden Thread zwangsweise abzubrechen und zudem mit dem Problem konfrontiert, dass andere Threads nicht korrekt schließen können; System.Environment.Exit(0); Das ist der vollständigste Weg, um zu beenden, egal welcher Thread gezwungen wird zu beenden, und das Programm sehr sauber zu beenden. |