Punti chiave:
1. Quando un thread viene creato nel thread principale, l'IsBackground del thread viene impostato di default su FALSE.
2. Quando il thread principale esce, il thread con IsBackground=FALSE continuerà a essere eseguito fino alla fine dell'esecuzione del thread.
3. Solo i thread con IsBackground=TRUE usciranno con l'uscita del thread principale.
4. Quando inizializza un thread e si imposta Thread.IsBackground=true, indica che il thread è un thread di background. Il thread di background uscirà mentre il thread principale esce.
5. Principio: Finché tutti i thread in primo piano sono terminati, il CLR chiamerà Abort() a ogni thread in background attivo per terminare completamente l'applicazione.
Allegato è un altro: Come uscire dal programma: questo. Close(); Se chiudi semplicemente la finestra corrente, se non è la forma principale, non puoi uscire dal programma, e se c'è un thread gestito (non il thread principale), non puoi uscire pulita; Application.Exit(); Forzare l'aborto di tutti i messaggi e uscire da tutte le forme, ma se c'è un thread gestito (non il thread principale), non può uscire pulito; Application.ExitThread(); interrompere forzatamente tutti i messaggi sul thread chiamante e affrontare anche il problema che altri thread non riescono a uscire correttamente; Sistema.Ambiente.Uscita(0); Questo è il modo più completo per uscire, indipendentemente da quale thread venga costretto a chiudersi, terminando il programma in modo molto pulito. |