IVirtualProcessorRoot::Activate 方法

使与执行上下文接口 pContext 关联的线程代理在此虚拟处理根上开始执行。

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

参数

  • pContext
    将在此虚拟处理器根上进行调度的执行上下文的接口。

备注

如果不与执行上下文接口 pContext 相关,资源管理器将提供线程代理

可使用 Activate 方法在资源管理器返回的新的虚拟处理器根上开始执行工作,或在已停用的或将要停用的虚拟处理器根上继续线程代理。 有关停用的更多信息,请参见 IVirtualProcessorRoot::Deactivate。 当恢复的已停用虚拟处理器根时,参数 pContext 必须与用来停用虚拟处理器根的参数一样。

第一次激活虚拟处理器根之后, 对 DeactivateActivate 的调用的后面几对可能会互相争用。 这意味着让资源管理器在其接收其应用对象 Deactivate 的调用之前接收对于 Activate 的调用是可接受的。

当激活虚拟处理器根时,向该虚拟处理器根当前正在使用的资源管理器发送信号。 如果您的计划程序无法找到此根上执行的任何工作,则应调用 Deactivate 方法,通知资源管理器虚拟处理器根处于空闲状态。 资源管理器使用此数据来使系统负载平衡。

如果实参 pContext 的值为 NULL,则会引发 invalid_argument

如果实参 pContext 不表示最近由此虚拟处理器根调度的执行上下文,则会引发 invalid_operation

激活虚拟处理器根的操作会以 1 增加基础硬件线程的订阅级别。 有关订阅级别的详细信息,请参见 IExecutionResource::CurrentSubscriptionLevel

要求

**标头:**concrtrm.h

命名空间: 并发

请参见

参考

IVirtualProcessorRoot 结构

IVirtualProcessorRoot::Deactivate 方法

IExecutionResource::CurrentSubscriptionLevel 方法