IUMSScheduler 構造体
コンカレンシー ランタイムのリソース マネージャーによってユーザー モード スケジュール可能 (UMS) スレッドが渡される必要がある作業スケジューラの抽象化のインターフェイスです。 リソース マネージャーでは、このインターフェイスを使用して UMS スレッド スケジューラと通信します。 IUMSScheduler
インターフェイスは IScheduler
インターフェイスを継承します。
構文
struct IUMSScheduler : public IScheduler;
メンバー
パブリック メソッド
名前 | 説明 |
---|---|
IUMSScheduler::SetCompletionList | IUMSCompletionList インターフェイスを UMS スレッド スケジューラに割り当てます。 |
解説
リソース マネージャーと通信するカスタム スケジューラを実装し、通常の Win32 スレッドではなく、UMS スレッドをスケジューラに渡す場合は、IUMSScheduler
インターフェイスの実装を提供する必要があります。 さらに、スケジューラ ポリシー キー SchedulerKind
のポリシー値を UmsThreadDefault
に設定する必要があります。 ポリシーで UMS スレッドが指定されている場合、IResourceManager::RegisterScheduler メソッドにパラメーターとして渡される IScheduler
インターフェイスは、IUMSScheduler
インターフェイスである必要があります。
このリソース マネージャーは、UMS 機能を持つオペレーティング システムでのみ UMS スレッドを渡すことができます。 UMS スレッドは、Windows 7 以上のバージョンの 64 ビット オペレーティング システムでサポートされます。 SchedulerKind
キーを値 UmsThreadDefault
に設定してスケジューラ ポリシーを作成し、基になるプラットフォームが UMS をサポートしていない場合、そのポリシーの SchedulerKind
キーの値は値 ThreadScheduler
に変更されます。 UMS スレッドを受け取ることを予期する前に、常にこのポリシー値を読み直す必要があります。
IUMSScheduler
インターフェイスは、スケジューラとリソース マネージャー間の双方向通信チャネルの一端です。 もう一方の端は、リソース マネージャーによって実装される IResourceManager
インターフェイスと ISchedulerProxy
インターフェイスで表されます。
継承階層
IUMSScheduler
要件
ヘッダー: concrtrm.h
名前空間: concurrency
IUMSScheduler::SetCompletionList メソッド
IUMSCompletionList
インターフェイスを UMS スレッド スケジューラに割り当てます。
virtual void SetCompletionList(_Inout_ IUMSCompletionList* pCompletionList) = 0;
パラメーター
pCompletionList
スケジューラの入力候補一覧インターフェイス。 スケジューラごとに 1 つの一覧があります。
解説
このリソース マネージャーは、スケジューラがリソースの初期割り当てを要求した後、UMS スレッドが必要であることを示すスケジューラでこのメソッドを呼び出します。 スケジューラは、IUMSCompletionList
インターフェイスを使用して、UMS スレッド プロキシがいつブロック解除されたのか判断できます。 これは、UMS スケジューラに割り当てられた仮想プロセッサ ルートで実行されているスレッド プロキシからこのインターフェイスにアクセスする場合にのみ有効です。
関連項目
コンカレンシー名前空間
PolicyElementKey
IScheduler 構造体
IUMSCompletionList 構造体
IResourceManager 構造体