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


Класс Context

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

class 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

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

Защищенные операторы

Имя

Описание

Оператор Context::operator delete

Объект Context внутренне уничтожается средой выполнения. Его невозможно удалить явно.

Заметки

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

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

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

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

Контекст

Требования

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

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

См. также

Ссылки

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

Класс Scheduler

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

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