Belangrijke punten:
1. Wanneer een thread wordt aangemaakt in de hoofdthread, wordt de IsBackground van de thread standaard op FALSE gezet.
2. Wanneer de hoofdthread wordt afgesloten, blijft de thread met IsBackground=FALSE uitvoeren totdat de threaduitvoering eindigt.
3. Alleen threads met IsBackground=TRUE zullen afsluiten met het uitgaan van de hoofdthread.
4. Bij het initialiseren van een thread en het instellen van Thread.IsBackground=true, geeft dit aan dat de thread een achtergrondthread is. De achtergronddraad zal vertrekken zodra de hoofddraad vertrekt.
5. Principe: Zolang alle voorgrondthreads zijn beëindigd, roept de CLR Abort() aan om elke actieve achtergrondthread volledig te beëindigen.
Bijgevoegd is nog een andere: Hoe je het programma afsluit: dit. Close(); Als je alleen het huidige venster sluit, als het niet de hoofdvorm is, kun je het programma niet afsluiten, en als er een beheerde thread is (niet de hoofdthread), kun je niet schoon afsluiten; Application.Exit(); Dwing alle berichten om alle formulieren af te breken en te verlaten, maar als er een managed thread is (niet de hoofdthread), kan deze niet schoon afsluiten; Application.ExitThread(); alle berichten op de aanroepende thread gedwongen af te breken, en ook het probleem te ondervinden dat andere threads niet correct kunnen afsluiten; System.Environment.Exit(0); Dit is de meest complete manier om af te sluiten, ongeacht welke thread gedwongen wordt af te sluiten, waardoor het programma heel netjes wordt afgesloten. |