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インターフェイスで表されます。

継承階層

IScheduler

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 構造体