DispatcherPriority Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Описывает приоритеты, с которыми могут вызываться операции посредством Dispatcher.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Наследование
Поля
ApplicationIdle | 2 | Значением перечисления является 2. Операции обрабатываются, когда приложение бездействует. |
Background | 4 | Значением перечисления является 4. Операции обрабатываются после завершения всех остальных операций, которые не находятся в состоянии ожидания. |
ContextIdle | 3 | Значением перечисления является 3. Операции обрабатываются после завершения фоновых операций. |
DataBind | 8 | Значением перечисления является 8. Операции обрабатываются с таким же приоритетом, как и привязка данных. |
Inactive | 0 | Значением перечисления является 0. Операции не обрабатываются. |
Input | 5 | Значением перечисления является 5. Операции обрабатываются с таким же приоритетом, как и ввод данных. |
Invalid | -1 | Значением перечисляемого типа является -1. Это недействительный приоритет. |
Loaded | 6 | Значением перечисления является 6. Операции обрабатываются, когда завершены формирование структуры и отрисовка содержимого, но перед обработкой элементов с приоритетом ввода. Именно на этой стадии генерируется событие Loaded. |
Normal | 9 | Значением перечисления является 9. Операции обрабатываются с обычным приоритетом. Это типичный приоритет приложений. |
Render | 7 | Значением перечисления является 7. Операции обрабатываются с таким же приоритетом, как и отрисовка. |
Send | 10 | Значением перечисления является 10. Операции обрабатываются перед другими асинхронными операциями. Это наивысший приоритет. |
SystemIdle | 1 | Значением перечисления является 1. Операции обрабатываются, когда система бездействует. |
Примеры
В следующем примере вызывается Dispatcher.BeginInvoke метод и передается делегат с одним аргументом. Для приоритета задано значение 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)
Комментарии
Не существует определенного состояния системы или простоя, соответствующего ApplicationIdle
ContextIdle
текущей версии WPF. Оба по-прежнему являются допустимыми приоритетами; Операция с приоритетом ContextIdle
имеет более высокий приоритет, чем операция с приоритетом SystemIdle
.
Выполнение Dispatcher операции не будет регулироваться, если она превышает определенный процент ЦП. Одним из способов регулирования процесса является использование таймера.
Если операция размещается Dispatcher.Invoke по своему Dispatcher усмотрению с приоритетом Send
, операция обходит очередь и немедленно выполняется.