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