Share via


Context::Block, méthode

Bloque le contexte actuel.

_CRTIMP 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.

Une fois la méthode Block 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é. Pendant cette période, il est impératif que vous n'appeliez aucune méthode susceptible de se bloquer et de se débloquer à son tour pour des raisons qui lui sont propres (par exemple pour acquérir 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 d'accès : Concurrency

Voir aussi

Référence

Context, classe

Context::Unblock, méthode

Concepts

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