Поделиться через


Метод Context::Block

Блокирует текущий контекст.

_CRTIMP static void __cdecl Block();

Заметки

Данный метод приведет к созданию и/или присоединению к вызывающему контексту планировщика процесса по умолчанию, если с вызывающим контекстом еще не связан планировщик.

Если вызывающий контекст выполняется на виртуальный процессор, виртуальный процессор найдет другого работоспособный контекст для выполнения или потенциально может создать новый.

После того, как метод Block был вызван или будет вызываться, нужно объединить его в пару с вызовом метода Unblock из другого контекста выполнения, чтобы выполнить его снова. Имейте в виду, что существует критический период между точкой, где код публикует его контекст для другого потока, чтобы иметь возможность вызвать метод Unblock и точкой, где производится фактический вызов метода Block. В этот период запрещено вызывать любой метод, который в свою очередь может блокировать и разблокировать по своим собственным причинам (например: получение блокировки). Вызовы методов Block и Unblock не отслеживают причины блокировки и разблокирования. Только один объект должен быть владельцем пары Block и Unblock.

Этот метод может выдать различные исключения, включая scheduler_resource_allocation_error.

Требования

Заголовок: concrt.h

Пространство имен: Concurrency

См. также

Ссылки

Класс Context

Метод Context::Unblock

Основные понятия

Планировщик задач (среда выполнения с параллелизмом)