共用方式為


IScheduler::NotifyResourcesExternallyIdle 方法

通知這個排程器,其他排程器並未使用陣列 ppVirtualProcessorRoots 中的一組虛擬處理器所代表的硬體執行緒。

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

參數

  • ppVirtualProcessorRoots
    與硬體執行緒相關的 IVirtualProcessorRoot 介面陣列,在這些硬體執行緒上的其他排程器都已經變成閒置。

  • count
    陣列中 IVirtualProcessorRoot 介面的數目。

備註

您可以同時將特定硬體執行緒指派給多個排程器。 這種情況的原因之一是,若不共用資源,系統上的硬體執行緒不足以達到所有排程器的最低並行。 另一個可能性是擁有資源的排程器未使用資源時,會將資源暫時指派給其他排程器,方法是停用它在該硬體執行緒上的所有虛擬處理器根。

硬體執行緒的訂閱層級由訂閱之執行緒的數目表示,並且由與該硬體執行緒相關的虛擬處理器根啟動。 從特定排程器的觀點而言,硬體執行緒的外部訂閱層級會是其他排程器做為訂閱的部分。 當硬體執行緒的外部訂閱層級從原本的正值降到零時,會傳送關於資源極忙碌的通知到排程器。

透過此方法的通知只會傳送至 MinConcurrency 原則機碼的值等於 MaxConcurrency 原則機碼值之原則的排程器。 如需排程器原則的詳細資訊,請參閱 SchedulerPolicy

符合通知資格的排程器會在建立時取得一組初始通知,其中通知剛分派給它的資源在外部為忙碌或閒置。

需求

標頭: concrtrm.h

**命名空間:**並行

請參閱

參考

IScheduler 結構

其他資源

IExecutionResource::CurrentSubscriptionLevel 方法

IScheduler::NotifyResourcesExternallyBusy 方法