DispatcherPriority Enum
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Describes the priorities at which operations can be invoked by way of the Dispatcher.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Inheritance
Fields
Name | Value | Description |
---|---|---|
Invalid | -1 | The enumeration value is -1. This is an invalid priority. |
Inactive | 0 | The enumeration value is 0. Operations are not processed. |
SystemIdle | 1 | The enumeration value is 1. Operations are processed when the system is idle. |
ApplicationIdle | 2 | The enumeration value is 2. Operations are processed when the application is idle. |
ContextIdle | 3 | The enumeration value is 3. Operations are processed after background operations have completed. |
Background | 4 | The enumeration value is 4. Operations are processed after all other non-idle operations are completed. |
Input | 5 | The enumeration value is 5. Operations are processed at the same priority as input. |
Loaded | 6 | The enumeration value is 6. Operations are processed when layout and render has finished but just before items at input priority are serviced. Specifically this is used when raising the Loaded event. |
Render | 7 | The enumeration value is 7. Operations processed at the same priority as rendering. |
DataBind | 8 | The enumeration value is 8. Operations are processed at the same priority as data binding. |
Normal | 9 | The enumeration value is 9. Operations are processed at normal priority. This is the typical application priority. |
Send | 10 | The enumeration value is 10. Operations are processed before other asynchronous operations. This is the highest priority. |
Examples
The following example calls the Dispatcher.BeginInvoke method and passes it a delegate with one argument. The priority is set to Normal
.
// Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(
System.Windows.Threading.DispatcherPriority.Normal,
new OneArgDelegate(UpdateUserInterface),
weather);
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)
Remarks
There is no specific system state or "idleness" corresponding to ApplicationIdle
and ContextIdle
in the current version of WPF. Both are still valid priorities; an operation with a priority of ContextIdle
has a higher priority than an operation with a priority of SystemIdle
.
The Dispatcher does not throttle the execution of an operation if it exceeds a certain percentage of the CPU. One way to throttle a process is to use a timer.
If an operation is posted using Dispatcher.Invoke on its own Dispatcher at a priority of Send
, the operation bypasses the queue and is immediately executed.