Fonction SwitchToThread (processthreadsapi.h)

Oblige le thread appelant à céder l'exécution à un autre thread prêt à s'exécuter sur le processeur actuel. Le système d’exploitation sélectionne le thread suivant à exécuter.

Syntaxe

BOOL SwitchToThread();

Valeur de retour

Si l’appel de la fonction SwitchToThread a entraîné le basculement de l’exécution du système d’exploitation vers un autre thread, la valeur de retour est différente de zéro.

S’il n’y a pas d’autres threads prêts à s’exécuter, le système d’exploitation ne bascule pas l’exécution vers un autre thread et la valeur de retour est zéro.

Remarques

Le rendement d’exécution est en vigueur pour un maximum d’une tranche de temps de planification de thread sur le processeur du thread appelant. Le système d’exploitation ne basculera pas l’exécution vers un autre processeur, même si ce processeur est inactif ou exécute un thread de priorité inférieure.

Une fois la tranche de temps du thread de rendement écoulée, le système d’exploitation replanifie l’exécution du thread de rendement. Le rééchelonnement est déterminé par la priorité du thread de rendement et la status d’autres threads disponibles pour l’exécution.

Notez que le système d’exploitation ne bascule pas vers un thread qui ne peut pas s’exécuter uniquement par le contrôle d’accès concurrentiel. Par exemple, un port d’achèvement d’E/S ou un pool de threads limite le nombre de threads associés qui peuvent s’exécuter. Si le nombre maximal de threads est déjà en cours d’exécution, aucun thread associé supplémentaire ne peut s’exécuter tant qu’un thread en cours d’exécution n’est pas terminé. Si un thread utilise SwitchToThread pour attendre que l’un des threads supplémentaires associés effectue un certain travail, le processus peut se bloquer.

Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT comme 0x0400 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.

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 Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions de processus et de thread

SuspendThread

Suspension de l’exécution de thread

Threads