次の方法で共有


Dispatcher.DisableProcessing メソッド

定義

Dispatcher キューの処理を無効にします。

public:
 System::Windows::Threading::DispatcherProcessingDisabled DisableProcessing();
public System.Windows.Threading.DispatcherProcessingDisabled DisableProcessing ();
member this.DisableProcessing : unit -> System.Windows.Threading.DispatcherProcessingDisabled
Public Function DisableProcessing () As DispatcherProcessingDisabled

戻り値

DispatcherProcessingDisabled

ディスパッチャー処理を再度有効にするために使用される構造体。

次の例は、ディスパッチャー処理を無効にし、ディスパッチャー処理を再度有効にする方法を示しています。 DisableProcessingusing ステートメントで呼び出されます。 DisableProcessing は、 DispatcherProcessingDisabled using ブロックが終了したときに破棄されるオブジェクトとして使用される構造体 返します。 構造体でDispatcherProcessingDisabled呼び出されるとDispose、ディスパッチャー処理が再び有効になります。

// The Dispose() method is called at the end of the using statement.
// Calling Dispose on the DispatcherProcessingDisabled structure, 
// which is returned from the call to DisableProcessing, will
// re-enalbe Dispatcher processing.
using (Dispatcher.DisableProcessing())
{
    // Do work while the dispatcher processing is disabled.
    Thread.Sleep(2000);
}
' The Dispose() method is called at the end of the using statement.
' Calling Dispose on the DispatcherProcessingDisabled structure, 
' which is returned from the call to DisableProcessing, will
' re-enable Dispatcher processing.
Using Dispatcher.DisableProcessing()
    ' Do work while the dispatcher processing is disabled.
    Thread.Sleep(2000)
End Using

注釈

ディスパッチャー処理を無効にすることは、無関係な再入の可能性を排除することを目的とした高度な方法です。

処理を無効にした場合の影響は次のとおりです。

  • CLR ロックは、内部的にメッセージをポンピングしません。

  • DispatcherFrame オブジェクトはプッシュできません。

  • メッセージ処理は許可されません。

DispatcherProcessingDisabled呼び出されたときに返されるDisableProcessing構造体は、ディスパッチャー処理を再度有効にするために使用できます。 構造体をDispatcherProcessingDisabled呼び出すとDispose、処理が再度有効になります。

DisableProcessing は、関連付けられているスレッド Dispatcher でのみ呼び出すことができます。

適用対象