DispatcherPriority Enumerazione

Definizione

Descrive le priorità in cui è possibile richiamare le operazioni tramite il Dispatcher.

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

Campi

Nome Valore Descrizione
Invalid -1

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

Inactive 0

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

SystemIdle 1

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

ApplicationIdle 2

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

ContextIdle 3

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

Background 4

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

Input 5

Il valore di enumerazione è 5. Le operazioni vengono elaborate con la stessa priorità dell'input.

Loaded 6

Il valore di enumerazione è 6. Le operazioni vengono elaborate al termine del layout e del rendering, ma subito prima che gli elementi con priorità di input vengano gestiti. In particolare, questo viene usato quando si genera l'evento Loaded.

Render 7

Il valore di enumerazione è 7. Operazioni elaborate con la stessa priorità del rendering.

DataBind 8

Il valore di enumerazione è 8. Le operazioni vengono elaborate con la stessa priorità del data binding.

Normal 9

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

Send 10

Il valore di enumerazione è 10. Le operazioni vengono elaborate prima di altre operazioni asincrone. Questa è la priorità più alta.

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 macchine virtuali Windows. 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 a una priorità di Send, l'operazione ignora la coda e viene eseguita immediatamente.

Si applica a