次の方法で共有


Context::Block メソッド

現在のコンテキストをブロックします。

static void __cdecl Block();

解説

呼び出し元のコンテキストにスケジューラが現在関連付けられていない場合、このメソッドを呼び出すと、プロセスの既定のスケジューラが作成されるか、または呼び出し元コンテキストにアタッチされます。

呼び出し元コンテキストが仮想プロセッサで実行されている場合、仮想プロセッサで実行する別の実行可能コンテキストが見つからない場合は、新しいを作成できます。

Block のメソッドが呼び出されたとき、またはが呼び出された後、組み合わせて、もう一度実行するには、実行コンテキストから ブロック解除します。 のメソッドの呼び出しとします。別のスレッドが Unblock メソッドを呼び出すことができるようにコードがそのコンテキストをパブリッシュする時点と、Block メソッドの呼び出しが実際に行われる時点の間に、重要な処理が実行されることに注意してください。この期間中は、独自の原因のためにブロックまたはブロック解除できるメソッドをダイヤルするとなり (たとえば、ロックを取得します)。Block メソッドと Unblock メソッドの呼び出しでは、ブロックとブロック解除の理由は追跡されません。BlockUnblock のペアの所有権を持つオブジェクトは 1 つである必要があります。

このメソッドは scheduler_resource_allocation_errorなど、さまざまな例外をスローできます。

必要条件

ヘッダー: concrt.h

名前空間: の同時実行

参照

関連項目

Context クラス

Context::Unblock メソッド

概念

タスク スケジューラ (同時実行ランタイム)