次の方法で共有


IThreadProxy::SwitchOut メソッド

現在実行中のスレッド プロキシを、使用できる仮想プロセッサ ルートで再開できるようになるまでブロックします。

virtual void SwitchOut() =0;

解説

基になる仮想プロセッサ ルートの放棄後に実行中のスレッド プロキシをブロックするには、SwitchOut を使用します。 このメソッドは、リソース マネージャーから指示があった場合か、オーバーサブスクリプション状態の一時仮想プロセッサ ルートを要求した後、その処理が終了した場合に、スケジューラの仮想プロセッサ ルートの数を減らす必要があるときに便利です。 スケジューラの別の仮想プロセッサ ルートが処理を実行できるようになると、スレッド プロキシは実行を再開します。

ブロック状態のスレッド プロキシを再開するには、SwitchTo 関数を呼び出してこのスレッド プロキシの実行コンテキストに切り替えます。 関連付けられているコンテキストを使用して仮想プロセッサ ルートをアクティブ化することにより、スレッド プロキシを再開することもできます。 この方法の詳細については、IVirtualProcessorRoot::Activate のトピックを参照してください。

SwitchOut は、現在実行中のスレッドを表す IThreadProxy インターフェイスで呼び出す必要があります。それ以外の場合、結果は保証されません。

必要条件

ヘッダー: concrtrm.h

名前空間: Concurrency

参照

参照

IThreadProxy 構造体