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
| Nome | Valor | Description |
|---|---|---|
| Invalid | -1 | O valor da enumeração é -1. Essa é uma prioridade inválida. |
| Inactive | 0 | O valor da enumeração é 0. As operações não são processadas. |
| SystemIdle | 1 | O valor da enumeração é 1. As operações são processadas quando o sistema está ocioso. |
| ApplicationIdle | 2 | O valor da enumeração é 2. As operações são processadas quando o aplicativo está ocioso. |
| ContextIdle | 3 | O valor da enumeração é 3. As operações são processadas após a conclusão das operações em segundo plano. |
| Background | 4 | O valor da enumeração é 4. As operações são processadas depois que todas as outras operações não ociosas são concluídas. |
| Input | 5 | O valor da enumeração é 5. As operações são processadas com a mesma prioridade que a entrada. |
| Loaded | 6 | O valor da enumeração é 6. As operações são processadas quando o layout e a renderização são concluídos, mas pouco antes dos itens na prioridade de entrada serem atendidos. Especificamente, isso é usado ao gerar o evento Loaded. |
| Render | 7 | O valor da enumeração é 7. Operações processadas com a mesma prioridade que a renderização. |
| DataBind | 8 | O valor da enumeração é 8. As operações são processadas com a mesma prioridade que a associação de dados. |
| Normal | 9 | O valor da enumeração é 9. As operações são processadas com prioridade normal. Essa é a prioridade típica do aplicativo. |
| Send | 10 | O valor da enumeração é 10. As operações são processadas antes de outras operações assíncronas. Essa é a prioridade mais alta. |
Exemplos
O exemplo a seguir chama o Dispatcher.BeginInvoke método e passa um delegado com um argumento. A prioridade é 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. Ambas ainda são prioridades válidas; uma operação com prioridade ContextIdle de tem uma prioridade maior do que uma operação com uma prioridade de SystemIdle.
Não Dispatcher limitará a execução de uma operação se ela exceder um determinado percentual da CPU. Uma maneira de limitar um processo é usar um temporizador.
Se uma operação for postada usando Dispatcher.Invoke por conta própria Dispatcher , a Sendoperação ignorará a fila e será executada imediatamente.