Export (0) Print
Expand All

Dispatcher.DisableProcessing Method

Disables processing of the Dispatcher queue.

Namespace:  System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)

public DispatcherProcessingDisabled DisableProcessing()

Return Value

Type: System.Windows.Threading.DispatcherProcessingDisabled
A structure used to re-enable dispatcher processing.

Disabling dispatcher processing is an advanced method that is intended to eliminate the chance of unrelated reentrancy.

The effects of disabling processing are as follows:

  • CLR locks will not pump messages internally.

  • DispatcherFrame objects are not allowed to be pushed.

  • Message processing is not permitted.

The DispatcherProcessingDisabled structure that DisableProcessing returns when it is called can be used to re-enable dispatcher processing. Calling Dispose on the DispatcherProcessingDisabled structure re-enables processing.

DisableProcessing can only be called on the thread the Dispatcher is associated with.

The following example shows how to disable dispatcher processing and re-enable dispatcher processing. DisableProcessing is called in a using statement. DisableProcessing returns a DispatcherProcessingDisabled structure that is used as the object to be disposed when the using block finishes. When Dispose is called on the DispatcherProcessingDisabled structure, dispatcher processing is re-enabled.

// 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);
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft