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


Метод IVirtualProcessorRoot::Activate

Вызывает связанный с интерфейсом контекста выполнения pContext прокси-поток, чтобы начать выполнение этом корне виртуального процессора.

virtual void Activate(
   _Inout_ IExecutionContext * pContext
) =0;

Параметры

  • pContext
    Интерфейс контекста выполнения, которые будет передан на этот корневой виртуальный процессор.

Заметки

Диспетчер ресурсов предоставит прокси-поток, если ни один не связан с интерфейсом контекста выполнения pContext.

Метод Activate может использоваться для запуска выполнения работы на новом корне виртуальный процессор, возвращаемом диспетчером ресурсов или для возобновить прокси-поток на корне виртуальный процессор, который отключен или будет отключен. См. IVirtualProcessorRoot::Deactivate для получения дополнительных сведений о деактивацию. Когда возобновляется работа отключенного корня виртуального процессора, параметр pContext должен быть таким же как параметр, используемый для отключения корня виртуальный процессор.

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

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

invalid_argument выбрасывается, если аргумент pContext имеет значение NULL.

invalid_operation выбрасывается, если аргумент pContext не представляет контекст выполнения, который был отправлен недавно этим корневой виртуальный процессор.

Процесс активации корня виртуальный процессор увеличивает уровень подписки базовой аппаратный поток на единицу. Дополнительные сведения об уровнях подписки см. в разделе IExecutionResource::CurrentSubscriptionLevel.

Требования

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

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

См. также

Ссылки

Структура IVirtualProcessorRoot

Метод IVirtualProcessorRoot::Deactivate

Метод IExecutionResource::CurrentSubscriptionLevel