ScheduleGroup クラス

スケジュール グループの抽象化を表します。 スケジュール グループは、(別のグループに移動する前に同じグループ内の別のタスクを実行することで) 一時的に、または (同じ NUMA ノードまたは物理ソケットの同じグループ内の複数の項目を実行することにより) 空間的に、短い間隔でスケジュールするとメリットがある関連作業のセットを編成します。

構文

class ScheduleGroup;

メンバー

保護されたコンストラクター

名前 説明
~ScheduleGroup デストラクター

パブリック メソッド

名前 説明
Id スケジュール グループが属するスケジューラ内で一意のスケジュール グループの識別子を返します。
リファレンス スケジュール グループの参照カウントをインクリメントします。
リリース スケジュール グループの参照カウントをデクリメントします。
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;

戻り値

新しくインクリメントされた参照カウント。

解説

これは、合成を目的としてスケジュール グループの有効期間を管理するために通常使用されます。 スケジュール グループの参照カウントが 0 になった場合、スケジュール グループはランタイムによって削除されます。 CurrentScheduler::CreateScheduleGroup メソッドまたは Scheduler::CreateScheduleGroup メソッドを使用して作成されたスケジュール グループは、参照カウント 1 から始まります。

リリース

スケジュール グループの参照カウントをデクリメントします。

virtual unsigned int Release() = 0;

戻り値

新しくデクリメントされた参照カウント。

解説

これは、合成を目的としてスケジュール グループの有効期間を管理するために通常使用されます。 スケジュール グループの参照カウントが 0 になった場合、スケジュール グループはランタイムによって削除されます。 作成参照カウントと Reference メソッドを使用して配置された追加の参照を削除するために Release メソッドを指定回数だけ呼び出した後は、スケジュール グループをさらに利用することはできません。 そうすると、未定義の動作が発生します。

スケジュール グループは、特定のスケジューラ インスタンスに関連付けられます。 スケジューラへのすべての参照を解放する前に、スケジュール グループへのすべての参照が解放されていることを確認する必要があります。スケジューラへの参照により、スケジューラが破棄される可能性があるからです。 そうしない場合は、未定義の動作になります。

~ScheduleGroup

virtual ~ScheduleGroup();

ScheduleTask

スケジュール グループ内の軽量タスクをスケジュールします。

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

パラメーター

_Proc
軽量タスクの本体を実行するために実行する関数へのポインター。

_Data
タスクの本体にパラメーターとして渡されるデータへの void ポインター。

解説

ScheduleTask メソッドを呼び出すことによって、タスクの実行後に適切な時刻にランタイムによって削除されるスケジュール グループに参照カウントが暗黙的に設定されます。

関連項目

コンカレンシー名前空間
CurrentScheduler クラス
Scheduler クラス
タスク スケジューラ