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, операция обходит очередь и немедленно выполняется.