ScheduleGroup 類別

代表排程群組的抽象概念。 排程群組會將一組相關的工作組織在一起,以讓這些工作獲得暫時緊密排程在一起的優勢,其方法如下:透過在同一個群組中執行另一個工作再移至另一個群組;透過再同一個 NUMA 節點或實體通訊端的同一個群組內執行多個項目。

語法

class ScheduleGroup;

成員

受保護的建構函式

名稱 描述
~ScheduleGroup 解構函式

公用方法

名稱 描述
識別碼 傳回排程群組的識別碼,此群組在群組所屬排程器內是唯一的。
參考 遞增排程器群組的參考計數。
版本 遞減排程器群組的參考計數。
ScheduleTask 在排程群組內排程羽量級工作。

繼承階層架構

ScheduleGroup

需求

標頭: concrt.h

命名空間: concurrency

Id

傳回排程群組的識別碼,此群組在群組所屬排程器內是唯一的。

virtual unsigned int Id() const = 0;

傳回值

排程群組的識別碼,在群組所屬的排程器內是唯一的。

operator delete

ScheduleGroup當釋放其所有外部參考時,執行時間會在內部終結 物件。 它不可明確刪除。

void operator delete(
    void* _PObject);

void operator delete(
    void* _PObject,
    int,
const char *,
    int);

參數

_PObject
要刪除之物件的指標。

參考

遞增排程器群組的參考計數。

virtual unsigned int Reference() = 0;

傳回值

新遞增的參考計數。

備註

這通常用來管理組合排程群組的存留期。 當排程群組的參考計數降至零時,執行時間就會刪除排程群組。 使用 CurrentScheduler::CreateScheduleGroup 方法建立的排程群組,或 Scheduler::CreateScheduleGroup 方法會以一個參考計數開頭。

版本

遞減排程器群組的參考計數。

virtual unsigned int Release() = 0;

傳回值

新遞減的參考計數。

備註

這通常用來管理組合排程群組的存留期。 當排程群組的參考計數降至零時,執行時間就會刪除排程群組。 在您呼叫 Release 方法特定次數以移除建立參考計數和任何使用 Reference 方法所進行的參考後,就不能進一步利用排程群組。 這樣做會導致未定義的行為。

排程群組與特定排程器實例相關聯。 您必須先確定已釋放排程群組的所有參考,才能釋放排程器的所有參考,因為後者可能會使排程器遭到終結。 否則會導致未定義的行為。

~ScheduleGroup

virtual ~ScheduleGroup();

ScheduleTask

在排程群組內排程羽量級工作。

virtual void ScheduleTask(
    TaskProc _Proc,
    _Inout_opt_ void* _Data) = 0;

參數

_Proc
要執行的函式指標,以執行輕量型工作的主體。

_資料
將做為參數傳遞至工作主體之資料的 void 指標。

備註

ScheduleTask呼叫 方法會隱含地將參考計數放在執行時間在工作執行之後的適當時間移除的排程群組。

另請參閱

concurrency 命名空間
CurrentScheduler 類別
Scheduler 類別
工作排程器