Partager via


Context::Block, méthode

Bloque le contexte actuel.

static void __cdecl Block();

Notes

Cette méthode entraînera la création du planificateur par défaut du processus et/ou son attachement au contexte d'appel si aucun planificateur n'est actuellement associé au contexte d'appel.

Si le contexte d'appel s'exécute sur un processeur virtuel, le processeur virtuel recherchera un autre contexte exécutable à exécuter ou il peut éventuellement en créer un.

Après que la méthode Blockait été appelée, vous devez la coupler avec un appel à la méthode Unblock depuis un autre contexte d'exécution pour qu'elle s'exécute de nouveau. Sachez qu'il existe une période critique entre le moment où votre code publie son contexte pour qu'un autre thread puisse appeler la méthode Unblock et le moment où l'appel de méthode réel à Block est effectué. Durant ce laps de temps, vous ne devez pas appeler une méthode qui peut ensuite bloquer et débloquer pour ses propres raisons (par exemple, l'acquisition d'un verrou). Les appels aux méthodes Block et Unblock n'effectuent pas le suivi de la raison du blocage et du déblocage. Un seul objet doit être propriétaire d'une paire Block- Unblock.

Cette méthode peut lever diverses exceptions, notamment scheduler_resource_allocation_error.

Configuration requise

En-tête : concrt.h

Espace de noms : concurrency

Voir aussi

Référence

Context, classe

Context::Unblock, méthode

Concepts

Planificateur de tâches (runtime d'accès concurrentiel)