次の方法で共有


IUMSThreadProxy 構造体

実行スレッドの抽象化です。 ユーザー モード スケジュール可能 (UMS) スレッドをスケジューラに付与するには、スケジューラ ポリシー要素 SchedulerKind の値を UmsThreadDefault に設定し、さらに IUMSScheduler インターフェイスを実装する必要があります。 UMS スレッドは、Windows 7 以上のバージョンの 64 ビット オペレーティング システムでのみサポートされます。

struct IUMSThreadProxy : public IThreadProxy;

メンバー

パブリック メソッド

名前

説明

IUMSThreadProxy::EnterCriticalRegion メソッド

クリティカル領域に入るときに呼び出します。 クリティカル領域内のコードが実行されている間に生じた非同期のブロック操作をスケジューラは一切監視しません。 つまり、UMS スレッドでは、ページ フォールト、スレッドの中断、カーネルの非同期プロシージャ呼び出し (APC: Asynchronous Procedure Call) などが発生しても、スケジューラが再度呼び出されることはありません。

IUMSThreadProxy::EnterHyperCriticalRegion メソッド

ハイパー クリティカル領域に入るときに呼び出します。 ハイパー クリティカル領域内のコードが実行されている間に生じたブロック操作をスケジューラは一切監視しません。 つまり、UMS スレッドでは、ブロックを伴う関数呼び出し、ブロックの原因となるロック取得、ページ フォールト、スレッドの中断、カーネルの非同期プロシージャ呼び出し (APC) などが発生しても、スケジューラが再度呼び出されることはありません。

IUMSThreadProxy::ExitCriticalRegion メソッド

クリティカル領域から抜けるときに呼び出します。

IUMSThreadProxy::ExitHyperCriticalRegion メソッド

ハイパー クリティカル領域から抜けるときに呼び出します。

IUMSThreadProxy::GetCriticalRegionType メソッド

スレッド プロキシが存在するクリティカル領域の種類を返します。 ハイパー クリティカル領域はクリティカル領域のスーパーセットであるため、コードがクリティカル領域に入った後、さらにハイパー クリティカル領域に入った場合、InsideHyperCriticalRegion が返されます。

継承階層

IThreadProxy

IUMSThreadProxy

必要条件

ヘッダー: concrtrm.h

名前空間: Concurrency

参照

参照

Concurrency 名前空間

IUMSScheduler 構造体

SchedulerType 列挙型