DispatcherPriority Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Beschreibt die Prioritäten, mit denen Vorgänge über den Dispatcher aufgerufen werden können.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Vererbung
Felder
ApplicationIdle | 2 | Der Enumerationswert ist 2. Vorgänge werden verarbeitet, wenn sich die Anwendung im Leerlauf befindet. |
Background | 4 | Der Enumerationswert ist 4. Vorgänge werden verarbeitet, sobald alle Vorgänge außer den nicht im Leerlauf befindlichen abgeschlossen sind. |
ContextIdle | 3 | Der Enumerationswert ist 3. Vorgänge werden verarbeitet, sobald die Hintergrundvorgänge abgeschlossen sind. |
DataBind | 8 | Der Enumerationswert ist 8. Vorgänge werden mit gleicher Priorität wie die Datenbindung verarbeitet. |
Inactive | 0 | Der Enumerationswert ist 0. Vorgänge werden nicht verarbeitet. |
Input | 5 | Der Enumerationswert ist 5. Vorgänge werden mit gleicher Priorität wie die Eingabe verarbeitet. |
Invalid | -1 | Der Enumerationswert ist -1. Dies ist eine ungültige Priorität. |
Loaded | 6 | Der Enumerationswert ist 6. Vorgänge werden verarbeitet, sobald Layout und Wiedergabe beendet sind, aber bevor Elemente mit Eingabepriorität verarbeitet werden. Dieser wird insbesondere verwendet, wenn das Loaded-Ereignis ausgelöst wird. |
Normal | 9 | Der Enumerationswert ist 9. Vorgänge werden mit normaler Priorität verarbeitet. Dies ist die häufigste Anwendungspriorität. |
Render | 7 | Der Enumerationswert ist 7. Vorgänge werden mit gleicher Priorität wie das Rendering verarbeitet. |
Send | 10 | Der Enumerationswert ist 10. Vorgänge werden vor anderen asynchronen Vorgängen verarbeitet. Dies ist die höchste Priorität. |
SystemIdle | 1 | Der Enumerationswert ist 1. Vorgänge werden verarbeitet, wenn sich das System im Leerlauf befindet. |
Beispiele
Im folgenden Beispiel wird die Dispatcher.BeginInvoke Methode aufgerufen und eine Stellvertretung mit einem Argument übergeben. Die Priorität wird auf 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)
Hinweise
Es gibt keinen bestimmten Systemstatus oder "Leerlauf", der und in der aktuellen Version von WPF entspricht ApplicationIdle
ContextIdle
. Beide sind noch gültige Prioritäten; ein Vorgang mit einer Priorität ContextIdle
hat eine höhere Priorität als ein Vorgang mit einer Priorität von SystemIdle
.
Die Dispatcher Ausführung eines Vorgangs wird nicht gedrosselt, wenn er einen bestimmten Prozentsatz der CPU überschreitet. Eine Möglichkeit zum Drosseln eines Prozesses besteht darin, einen Timer zu verwenden.
Wenn ein Vorgang mit Dispatcher.Invoke einer eigenen Dispatcher Priorität Send
gepostet wird, wird der Vorgang die Warteschlange umgehen und sofort ausgeführt.