DispatcherPriority Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
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.