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