DispatcherPriority Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Descreve as prioridades em que as operações podem ser invocadas por meio do Dispatcher.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| Invalid | -1 | O valor de enumeração é -1. Isto é uma prioridade inválida. |
| Inactive | 0 | O valor da enumeração é 0. As operações não são processadas. |
| SystemIdle | 1 | O valor de enumeração é 1. As operações são processadas quando o sistema está inativo. |
| ApplicationIdle | 2 | O valor de enumeração é 2. As operações são processadas quando a aplicação está inativa. |
| ContextIdle | 3 | O valor de enumeração é 3. As operações são processadas após a conclusão das operações em segundo plano. |
| Background | 4 | O valor de enumeração é 4. As operações são processadas após todas as outras operações não ociosas serem concluídas. |
| Input | 5 | O valor de enumeração é 5. As operações são processadas com a mesma prioridade que a entrada. |
| Loaded | 6 | O valor de enumeração é 6. As operações são processadas quando o layout e a renderização terminam, mas pouco antes de os itens com prioridade de entrada serem atendidos. Especificamente, isto é usado ao levantar o evento Loaded. |
| Render | 7 | O valor de enumeração é 7. Operações processadas com a mesma prioridade que a renderização. |
| DataBind | 8 | O valor de enumeração é 8. As operações são processadas com a mesma prioridade que a ligação de dados. |
| Normal | 9 | O valor de enumeração é 9. As operações são processadas com prioridade normal. Esta é a prioridade típica da aplicação. |
| Send | 10 | O valor de enumeração é 10. As operações são processadas antes de outras operações assíncronas. Esta é a prioridade máxima. |
Exemplos
O exemplo seguinte chama o Dispatcher.BeginInvoke método e passa-lhe um delegado com um argumento. A prioridade está definida para 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)
Observações
Não existe um estado específico do sistema ou "ociosidade" correspondente a ApplicationIdle e ContextIdle na versão atual do WPF. Ambos continuam a ser prioridades válidas; uma operação com prioridade de ContextIdle tem uma prioridade superior a uma operação com prioridade de SystemIdle.
Não Dispatcher limita a execução de uma operação se esta exceder uma certa percentagem da CPU. Uma forma de limitar um processo é usar um temporizador.
Se uma operação for publicada sozinha Dispatcher.InvokeDispatcher com prioridade de Send, a operação contorna a fila e é imediatamente executada.