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


Класс Context

Представляет абстракцию контекста выполнения.

class Context;

Члены

Защищенные конструкторы

Имя

Описание

Деструктор Context::~Context

Открытые методы

Имя

Описание

Метод Context::Block

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

Метод Context::CurrentContext

Возвращает указатель на текущий контекст.

Метод Context::GetId

Возвращает идентификатор для контекста, уникального в пределах планировщика, к которому принадлежит контекст.

Метод Context::GetScheduleGroupId

Возвращает идентификатор для группы расписаний, над которой в настоящий момент работает контекст.

Метод Context::GetVirtualProcessorId

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

Метод Context::Id

Возвращает идентификатор для текущего контекста, уникального в пределах планировщика, к которому принадлежит контекст.

Метод Context::IsCurrentTaskCollectionCanceling

Возвращает значение, указывающее, находится ли коллекция задач, которая выполняется в данный момент встроено в текущем контексте, в процессе активной отмены (или будет вскоре).

Метод Context::IsSynchronouslyBlocked

Определяет, будет ли контекст синхронно блокироваться. Контекст считается синхронно блокированным, если он явно выполнил действие, которое привело к блокированию.

Метод Context::Oversubscribe

Внедряет дополнительный виртуальный процессор в планировщик на длительность блока кода при вызове контекста выполнения на одном из виртуальных процессоров в данном планировщике.

Метод Context::ScheduleGroupId

Возвращает идентификатор для группы расписаний, над которой в настоящий момент работает текущий контекст.

Метод Context::Unblock

Разблокирует контекст и приводит к его готовности к запуску.

Метод Context::VirtualProcessorId

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

Метод Context::Yield

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

Заметки

Планировщик среды параллелизма (см. Планировщик) использует контексты выполнения для выполнения работы, поставленной в очередь приложением. Поток Win32 - пример контекста выполнения в операционной системе Windows.

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

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

Иерархия наследования

Context

Требования

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

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

См. также

Ссылки

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

Класс Scheduler

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

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