Partager via


Context::Unblock, méthode

Débloque le contexte et le rend exécutable.

virtual void Unblock() =0;

Notes

Il est parfaitement conforme pour un appel à la méthode Unblock de précéder un appel correspondant à la méthode Block. Tant que les appels aux méthodes Block et Unblock sont appariés correctement, le runtime gère correctement le cours normal des deux ordres. Un appel Unblock qui vient avant un appel Block annule simplement l'effet de l'appel Block.

Plusieurs exceptions peuvent être levées par cette méthode. Si un contexte essaie d'appeler la méthode Unblock elle-même, une exception context_self_unblock sera levée. If calls to Block and Unblock are not properly paired (for example, two calls to Unblock are made for a context which is currently running), a context_unblock_unbalanced exception will be thrown.

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é. During this period, you must not call any method which can in turn block and unblock for its own reasons (for example, acquiring a lock). 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 et Unblock.

Configuration requise

En-tête : concrt.h

Espace de noms : concurrency

Voir aussi

Référence

Context, classe

Context::Block, méthode

Concepts

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