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


Метод Context::Block

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

static void __cdecl Block();

Заметки

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

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

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

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

Требования

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

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

См. также

Ссылки

Класс Context

Метод Context::Unblock

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

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