ExitThread, fonction (processthreadsapi.h)
Termine le thread appelant.
Syntaxe
void ExitThread(
[in] DWORD dwExitCode
);
Paramètres
[in] dwExitCode
Code de sortie du thread.
Valeur de retour
None
Notes
ExitThread est la méthode préférée pour quitter un thread en code C. Toutefois, dans le code C++, le thread est supprimé avant qu’aucun destructeur ne puisse être appelé ou que tout autre nettoyage automatique puisse être effectué. Par conséquent, dans le code C++, vous devez retourner à partir de votre fonction thread.
Lorsque cette fonction est appelée (explicitement ou en retournant à partir d’une procédure de thread), la pile du thread actuel est libérée, toutes les E/S en attente initiées par le thread qui n’est pas associé à un port d’achèvement sont annulées et le thread se termine. La fonction de point d’entrée de toutes les bibliothèques de liens dynamiques (DLL) jointes est appelée avec une valeur indiquant que le thread est en cours de détachement de la DLL.
Si le thread est le dernier thread du processus lorsque cette fonction est appelée, le processus du thread est également terminé.
L’état de l’objet thread est signalé, libérant tous les autres threads qui attendaient la fin du thread. L’arrêt du thread status de STILL_ACTIVE à la valeur du paramètre dwExitCode.
La fin d’un thread ne supprime pas nécessairement l’objet thread du système d’exploitation. Un objet thread est supprimé lorsque le dernier handle du thread est fermé.
Les fonctions ExitProcess, ExitThread, CreateThread, CreateRemoteThread et un processus qui démarre (à la suite d’un appel CreateProcess ) sont sérialisés entre eux au sein d’un processus. Un seul de ces événements peut se produire dans un espace d’adressage à la fois. Cela signifie que les restrictions suivantes sont appliquées :
- Pendant le démarrage du processus et les routines d’initialisation de DLL, de nouveaux threads peuvent être créés, mais ils ne commencent pas l’exécution tant que l’initialisation de la DLL n’est pas terminée pour le processus.
- Un seul thread d’un processus peut se trouver dans une routine d’initialisation ou de détachement de DLL à la fois.
- ExitProcess ne retourne pas tant qu’aucun thread n’est dans ses routines d’initialisation ou de détachement de DLL.
Utilisez la fonction GetExitCodeThread pour récupérer le code de sortie d’un thread.
Windows Phone 8.1 : cette fonction est prise en charge pour les applications Windows Phone Store sur Windows Phone 8.1 et versions ultérieures.
Windows 8.1 et Windows Server 2012 R2 : cette fonction est prise en charge pour les applications du Windows Store sur Windows 8.1, Windows Server 2012 R2 et versions ultérieures.
Exemples
Pour obtenir un exemple, consultez Utilisation d’objets d’événement.
Spécifications
Client minimal pris en charge | Windows XP [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | processthreadsapi.h (inclure Windows.h sur Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Bibliothèque | Kernel32.lib; WindowsPhoneCore.lib sur Windows Phone 8.1 |
DLL | Kernel32.dll; KernelBase.dll sur Windows Phone 8.1 |