DispatcherPriority Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Descreve as prioridades nas quais 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
ApplicationIdle | 2 | O valor de enumeração é 2. As operações serão processadas quando o aplicativo estiver ocioso. |
Background | 4 | O valor de enumeração é 4. As operações serão processadas após a conclusão de todas as outras operações não ociosas. |
ContextIdle | 3 | O valor de enumeração é 3. As operações serão processadas após a conclusão das operações em segundo plano. |
DataBind | 8 | O valor de enumeração é 8. As operações serão processadas com a mesma prioridade que a vinculação de dados. |
Inactive | 0 | O valor de enumeração é 0. As operações não são processadas. |
Input | 5 | O valor de enumeração é 5. As operações são processadas com a mesma prioridade que a entrada. |
Invalid | -1 | O valor de enumeração é -1. Essa é uma prioridade inválida. |
Loaded | 6 | O valor de enumeração é 6. As operações serão processadas quando o layout e a renderização tiverem terminado, mas antes que os itens com prioridade de entrada sejam atendidos. Especificamente, isso é usado ao gerar o evento Loaded. |
Normal | 9 | O valor de enumeração é 9. As operações serão processadas com prioridade normal. Esta é a prioridade típica do aplicativo. |
Render | 7 | O valor de enumeração é 7. As operações serão processadas com a mesma prioridade que a renderização. |
Send | 10 | O valor de enumeração é 10. As operações serão processadas antes de outras operações assíncronas. Esta é a prioridade mais alta. |
SystemIdle | 1 | O valor de enumeração é 1. As operações serão processadas quando o sistema estiver ocioso. |
Exemplos
O exemplo a seguir chama o Dispatcher.BeginInvoke método e passa um delegado com um argumento. A prioridade está definida como 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)
Comentários
Não há nenhum estado específico do sistema ou "ociosidade" correspondente a ApplicationIdle
e ContextIdle
na versão atual do WPF. Ambos ainda são prioridades válidas; uma operação com prioridade ContextIdle
de ter uma prioridade maior do que uma operação com prioridade de SystemIdle
.
O Dispatcher não limita a execução de uma operação se exceder um determinado percentual da CPU. Uma maneira de limitar um processo é usar um temporizador.
Se uma operação for postada por Dispatcher.Invoke conta própria Dispatcher com prioridade Send
, a operação ignorará a fila e será executada imediatamente.