IScheduler::NotifyResourcesExternallyIdle 方法
通知這個排程器,其他排程器並未使用陣列 ppVirtualProcessorRoots 中的一組虛擬處理器所代表的硬體執行緒。
virtual void NotifyResourcesExternallyIdle(
IVirtualProcessorRoot ** ppVirtualProcessorRoots,
unsigned int count
) =0;
參數
ppVirtualProcessorRoots
與硬體執行緒相關的 IVirtualProcessorRoot 介面陣列,在這些硬體執行緒上的其他排程器都已經變成閒置。count
陣列中 IVirtualProcessorRoot 介面的數目。
備註
您可以同時將特定硬體執行緒指派給多個排程器。 這種情況的原因之一是,若不共用資源,系統上的硬體執行緒不足以達到所有排程器的最低並行。 另一個可能性是擁有資源的排程器未使用資源時,會將資源暫時指派給其他排程器,方法是停用它在該硬體執行緒上的所有虛擬處理器根。
硬體執行緒的訂閱層級由訂閱之執行緒的數目表示,並且由與該硬體執行緒相關的虛擬處理器根啟動。 從特定排程器的觀點而言,硬體執行緒的外部訂閱層級會是其他排程器做為訂閱的部分。 當硬體執行緒的外部訂閱層級從原本的正值降到零時,會傳送關於資源極忙碌的通知到排程器。
透過此方法的通知只會傳送至 MinConcurrency 原則機碼的值等於 MaxConcurrency 原則機碼值之原則的排程器。 如需排程器原則的詳細資訊,請參閱 SchedulerPolicy。
符合通知資格的排程器會在建立時取得一組初始通知,其中通知剛分派給它的資源在外部為忙碌或閒置。
需求
標頭: concrtrm.h
**命名空間:**並行