Partager via


SuspendThread, fonction (processthreadsapi.h)

Suspend le thread spécifié.

Remarque

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 vers le thread à suspendre.

Le handle doit disposer du 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 est le nombre de suspensions précédent du thread ; sinon, c’est (DWORD) -1. 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é. L’interruption 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. Elle n’est pas destinée à être utilisée pour la synchronisation de threads. L’appel de SuspendThread sur un thread propriétaire d’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 s’interrompre. Le thread cible doit être conçu pour surveiller ce signal et répondre de manière appropriée.

Chaque thread a un nombre d’interruptions (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 peut être exécuté. L’appel de SuspendThread entraîne l’incrémentation du nombre d’interruptions du thread cible. La 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 d’interruptions d’un thread suspendu.

Windows Phone 8.1 : Cette fonction est prise en charge pour les applications du 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.

Spécifications

Besoin Valeur
Client minimum requis Windows XP [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | Applications UWP]
plateforme cible Fenêtres
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

OpenThread

processus et fonctions de thread

ResumeThread

suspendre l’exécution de threads

Sujets