IScheduler::NotifyResourcesExternallyBusy 方法

通知此计划程序由数组 ppVirtualProcessorRoots 中的虚拟处理器根的集合表示的硬件线程正被其他计划程序使用。

virtual void NotifyResourcesExternallyBusy(
   IVirtualProcessorRoot ** ppVirtualProcessorRoots,
   unsigned int count
) =0;

参数

  • ppVirtualProcessorRoots
    与其他计划程序已变为繁忙的硬件线程相关联的 IVirtualProcessorRoot 接口数组。

  • count
    数组中 IVirtualProcessorRoot 接口的数目。

备注

可以同时将特定硬件线程分配给多个计划程序。 发生此情况的一个原因可能是在不共享资源的情况下系统上没有足够的硬件线程来满足所有计划程序的最小并发。 另一种可能是:当自有计划程序不使用资源时,这些资源将通过停用该硬件线程上的所有虚拟处理器根暂时分配给其他计划程序。

硬件线程的订阅级别由已订阅的线程数表示,并由与该硬件线程相关联的激活的虚拟处理器根表示。 从特定计划程序的角度来说,硬件线程的外部订阅级别是其他计划程序构成的订阅部分。 硬件线程的外部订阅级别从零移到正范围时将向计划程序发送关于资源外部繁忙的通知。

通过此方法的发出的通知只会发送到其策略的 MinConcurrency 策略键值等于 MaxConcurrency 策略键值的计划程序。 有关计划程序策略的更多信息,请参见 SchedulerPolicy

限定通知的计划程序在其创建时获取一组初始通知,通知其刚分配的资源在外部是忙还是空闲。

要求

**标头:**concrtrm.h

命名空间: 并发

请参见

参考

IScheduler 结构

其他资源

IExecutionResource::CurrentSubscriptionLevel 方法

IScheduler::NotifyResourcesExternallyIdle 方法