Freigeben über


Context::Block-Methode

Blockiert den aktuellen Anforderungskontext.

_CRTIMP static void __cdecl Block();

Hinweise

Diese Methode führt zum Erstellen des Standardplaner des Prozesses und/oder dazu, dass dieser an den aufrufenden Kontext angefügt wird, wenn es keinen dem aufrufenden Kontext gerade zugeordneten Planer gibt.

Wenn der aufrufende Kontext auf einem virtuellen Prozessor ausgeführt wird, sucht der virtuelle Prozessor einen auszuführenden anderen ausführbaren Kontext oder erstellt potenziell einen neuen.

Sobald die Block-Methode aufgerufen wurde oder aufgerufen wird, müssen Sie einen entsprechenden Aufruf der Unblock-Methode in einem anderen Ausführungskontext ausführen, um sie erneut ausführen zu können. Beachten Sie, dass es einen kritischen Zeitraum zwischen dem Punkt gibt, an dem der Code seinen Kontext veröffentlicht, damit ein anderer Thread die Unblock-Methode aufrufen kann, und dem Punkt, zu dem der tatsächliche Aufruf der Block-Methode stattfindet. Während dieses Zeitraums ist es obligatorisch, dass Sie keine Methode aufrufen, die selbst wiederum blockiert oder die Blockierung aufhebt (z. B. zum Abrufen einer Sperre). Aufrufe der Block-Methode und der Unblock-Methode verfolgen den Grund für die Blockierung und das Befreien nicht. Nur ein Objekt darf ein Block/Unblock-Paar besitzen.

Diese Methode kann eine Vielzahl von Ausnahmen auslösen, einschließlich scheduler_resource_allocation_error.

Anforderungen

Header: concrt.h

Namespace: Concurrency

Siehe auch

Referenz

Context-Klasse

Context::Unblock-Methode

Konzepte

Taskplaner (Concurrency Runtime)