IVirtualProcessorRoot::Activate 方法
使与执行上下文接口 pContext 关联的线程代理在此虚拟处理根上开始执行。
virtual void Activate(
_Inout_ IExecutionContext * pContext
) =0;
参数
- pContext
将在此虚拟处理器根上进行调度的执行上下文的接口。
备注
如果不与执行上下文接口 pContext 相关,资源管理器将提供线程代理
可使用 Activate 方法在资源管理器返回的新的虚拟处理器根上开始执行工作,或在已停用的或将要停用的虚拟处理器根上继续线程代理。 有关停用的更多信息,请参见 IVirtualProcessorRoot::Deactivate。 当恢复的已停用虚拟处理器根时,参数 pContext 必须与用来停用虚拟处理器根的参数一样。
第一次激活虚拟处理器根之后, 对 Deactivate 和 Activate 的调用的后面几对可能会互相争用。 这意味着让资源管理器在其接收其应用对象 Deactivate 的调用之前接收对于 Activate 的调用是可接受的。
当激活虚拟处理器根时,向该虚拟处理器根当前正在使用的资源管理器发送信号。 如果您的计划程序无法找到此根上执行的任何工作,则应调用 Deactivate 方法,通知资源管理器虚拟处理器根处于空闲状态。 资源管理器使用此数据来使系统负载平衡。
如果实参 pContext 的值为 NULL,则会引发 invalid_argument。
如果实参 pContext 不表示最近由此虚拟处理器根调度的执行上下文,则会引发 invalid_operation。
激活虚拟处理器根的操作会以 1 增加基础硬件线程的订阅级别。 有关订阅级别的详细信息,请参见 IExecutionResource::CurrentSubscriptionLevel。
要求
**标头:**concrtrm.h
命名空间: 并发