DispatcherPriority Enumerazione

Definizione

Descrive le priorità in base alle quali è possibile richiamare le operazioni tramite Dispatcher.

public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority = 
Public Enum DispatcherPriority
Ereditarietà
DispatcherPriority

Campi

ApplicationIdle 2

Il valore di enumerazione è 2. Le operazioni vengono elaborate quando l'applicazione è inattiva.

Background 4

Il valore di enumerazione è 4. Le operazioni vengono elaborate dopo il completamento di tutte le altre operazioni non inattive.

ContextIdle 3

Il valore di enumerazione è 3. Le operazioni vengono elaborate dopo il completamento delle operazioni in background.

DataBind 8

Il valore di enumerazione è 8. Le operazioni vengono elaborate con lo stesso livello di priorità dell'associazione dati.

Inactive 0

Il valore di enumerazione è 0. Le operazioni non vengono elaborate.

Input 5

Il valore di enumerazione è 5. Le operazioni vengono elaborate con lo stesso livello di priorità dell'input.

Invalid -1

Il valore di enumerazione è -1. Si tratta di una priorità non valida.

Loaded 6

Il valore di enumerazione è 6. Le operazioni vengono elaborate al termine delle attività di layout e rendering ma immediatamente prima della gestione degli elementi con priorità di input. In particolare, questo valore viene utilizzato quando viene generato l'evento Loaded.

Normal 9

Il valore di enumerazione è 9. Le operazioni vengono elaborate con priorità normale. Si tratta della priorità tipica dell'applicazione.

Render 7

Il valore di enumerazione è 7. Le operazioni vengono elaborate con lo stesso livello di priorità del rendering.

Send 10

Il valore di enumerazione è 10. Le operazioni vengono elaborate prima di altre operazioni asincrone. Si tratta della priorità più elevata.

SystemIdle 1

Il valore di enumerazione è 1. Le operazioni vengono elaborate quando il sistema è inattivo.

Esempio

Nell'esempio seguente viene chiamato il Dispatcher.BeginInvoke metodo e viene passato un delegato con un argomento. La priorità è impostata su 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)

Commenti

Non esiste uno stato di sistema specifico o "inattività" corrispondente a ApplicationIdle e ContextIdle nella versione corrente di WPF. Entrambe le priorità sono ancora valide; un'operazione con priorità di ContextIdle ha una priorità più alta rispetto a un'operazione con priorità .SystemIdle

Non Dispatcher limita l'esecuzione di un'operazione se supera una determinata percentuale della CPU. Un modo per limitare un processo consiste nell'usare un timer.

Se un'operazione viene registrata usando Dispatcher.Invoke autonomamente Dispatcher con una priorità di Send, l'operazione ignora la coda e viene eseguita immediatamente.

Si applica a