Funzione ExitThread (processthreadsapi.h)
Termina il thread chiamante.
Sintassi
void ExitThread(
[in] DWORD dwExitCode
);
Parametri
[in] dwExitCode
Codice di uscita per il thread.
Valore restituito
nessuno
Osservazioni
ExitThread è il metodo preferito per uscire da un thread nel codice C. Tuttavia, nel codice C++ il thread viene chiuso prima che qualsiasi distruttore possa essere chiamato o qualsiasi altra pulizia automatica può essere eseguita. Pertanto, nel codice C++ è necessario restituire dalla funzione thread.
Quando questa funzione viene chiamata (in modo esplicito o restituito da una routine thread), lo stack del thread corrente viene deallocato, tutto l'I/O in sospeso avviato dal thread non associato a una porta di completamento viene annullato e il thread termina. La funzione del punto di ingresso di tutte le librerie di collegamento dinamico associate viene richiamata con un valore che indica che il thread si scollega dalla DLL.
Se il thread è l'ultimo thread nel processo quando questa funzione viene chiamata, il processo del thread viene terminato anche.
Lo stato dell'oggetto thread viene segnalato, rilasciando qualsiasi altro thread che era in attesa che il thread venga terminato. Lo stato di terminazione del thread cambia da STILL_ACTIVE al valore del parametro dwExitCode .
La terminazione di un thread non rimuove necessariamente l'oggetto thread dal sistema operativo. Un oggetto thread viene eliminato quando l'ultimo handle al thread viene chiuso.
Le funzioni ExitProcess, ExitThread, CreateThread, CreateRemoteThread e un processo che viene avviato (come risultato di una chiamata CreateProcess) vengono serializzati tra loro all'interno di un processo. Solo uno di questi eventi può verificarsi in uno spazio di indirizzi alla volta. Ciò significa che le restrizioni seguenti contengono:
- Durante l'avvio del processo e le routine di inizializzazione DLL, è possibile creare nuovi thread, ma non iniziano l'esecuzione fino a quando non viene eseguita l'inizializzazione DLL per il processo.
- Un solo thread in un processo può trovarsi in una routine di inizializzazione o scollegamento della DLL alla volta.
- ExitProcess non restituisce fino a quando non si trovano thread nella routine di inizializzazione o scollegamento della DLL.
Usare la funzione GetExitCodeThread per recuperare il codice di uscita di un thread.
Windows Phone 8.1: questa funzione è supportata per le app Windows Phone Store in Windows Phone 8.1 e versioni successive.
Windows 8.1 e Windows Server 2012 R2: questa funzione è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.
Esempio
Per un esempio, vedere Uso di oggetti evento.
Requisiti
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | processthreadsapi.h (includere Windows.h in Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Libreria | Kernel32.lib; WindowsPhoneCore.lib in Windows Phone 8.1 |
DLL | Kernel32.dll; KernelBase.dll Windows Phone 8.1 |