言語

JoinableTaskFactory.DisableProcessing メソッド

定義

フィルター処理されたメッセージ ポンプが、アンビエント JoinableTaskの同期待機中に実行されないようにします。

public Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation DisableProcessing();
member this.DisableProcessing : unit -> Microsoft.VisualStudio.Threading.JoinableTaskFactory.ProcessingDisabledOperation
Public Function DisableProcessing () As JoinableTaskFactory.ProcessingDisabledOperation

返品

同期待機メッセージ・ポンプを抑制する必要性が終了したときに破棄される可能性のある値。 また、残りの JoinableTask が処理を無効にすることを意図している場合は、破棄することもできます。

例外

JoinableTaskのコンテキストの外部で呼び出されたときにスローされます。

このメソッドの簡単で一般的な使用方法を次に示します。

その使用方法の例を次に示します。

注釈

JoinableTask内のawait生成中、関連する作業のみを許可する内部メソッドを除き、このメソッドが呼び出されるかどうかに関係なく、メッセージ ポンプは実行されません。 メイン スレッドの同期ブロック (同期 I/O やロックの競合など) が必要になったJoinableTaskデリゲートまたはその呼び出し元内でユーザー コードが実行される場合、この待機は通常、CurrentWait(IntPtr[], Boolean, Int32)を呼び出すことによって実装されます。 このメソッドの既定の実装では、特定の中断 (E.G. COM RPC 呼び出し) が可能になり、特定の状況でデッドロックが回避 される可能性があります

このメソッドを呼び出すと、 Wait(IntPtr[], Boolean, Int32) の既定の実装は、その JoinableTask がアクティブであり、 Currentを制御している間にこのような中断を許可しない実装に置き換えられます。 このメソッドは複数回呼び出される可能性があるため、DisableProcessing()呼び出しのすべての戻り値が (任意の順序で) 破棄されるまで、この効果はターゲット JoinableTaskに残ります。 効果は直接の JoinableTaskにのみ適用されます。 子供や親には影響しません。

処理を無効にしても、Windows以外のオペレーティング システムには影響しません。

結果の値を破棄すると、既定の動作に戻ります。 呼び出し元は、その JoinableTaskの実行の残りの部分の処理を無効にする意図がある場合、この値を破棄する必要はありません。

適用対象