SuspendThread, fonction (processthreadsapi.h)
Suspend le thread spécifié.
Une application 64 bits peut suspendre un thread WOW64 à l’aide de la fonction Wow64SuspendThread .
Syntaxe
DWORD SuspendThread(
[in] HANDLE hThread
);
Paramètres
[in] hThread
Handle du thread qui doit être suspendu.
Le handle doit avoir le droit d’accès THREAD_SUSPEND_RESUME . Pour plus d’informations, consultez Sécurité des threads et droits d’accès.
Valeur retournée
Si la fonction réussit, la valeur de retour correspond au nombre de suspensions précédent du thread ; sinon, il s’agit (DWORD) -1
de . Pour obtenir des informations d’erreur étendues, utilisez la fonction GetLastError .
Remarques
Si la fonction réussit, l’exécution du thread spécifié est suspendue et le nombre de suspensions du thread est incrémenté. La suspension d’un thread entraîne l’arrêt de l’exécution du code en mode utilisateur (application).
Cette fonction est principalement conçue pour être utilisée par les débogueurs. Il n’est pas destiné à être utilisé pour la synchronisation de threads. L’appel de SuspendThread sur un thread qui possède un objet de synchronisation, tel qu’un mutex ou une section critique, peut entraîner un blocage si le thread appelant tente d’obtenir un objet de synchronisation appartenant à un thread suspendu. Pour éviter cette situation, un thread au sein d’une application qui n’est pas un débogueur doit signaler à l’autre thread de se suspendre. Le thread cible doit être conçu pour watch pour ce signal et répondre de manière appropriée.
Chaque thread a un nombre de suspensions (avec une valeur maximale de MAXIMUM_SUSPEND_COUNT). Si le nombre de suspensions est supérieur à zéro, le thread est suspendu ; sinon, le thread n’est pas suspendu et est éligible à l’exécution. L’appel de SuspendThread entraîne l’incrémentation du nombre de suspensions du thread cible. Une tentative d’incrémentation au-delà du nombre maximal de suspensions provoque une erreur sans incrémenter le nombre.
La fonction ResumeThread décrémente le nombre de suspensions d’un thread suspendu.
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.
Configuration requise
Condition requise | Valeur |
---|---|
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 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 |
Voir aussi
Fonctions de processus et de thread