DispatcherPriority Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Opisuje priorytety, w których operacje mogą być wywoływane za pomocą metody Dispatcher.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Dziedziczenie
Pola
ApplicationIdle | 2 | Wartość wyliczenia to 2. Operacje są przetwarzane, gdy aplikacja jest bezczynna. |
Background | 4 | Wartość wyliczenia to 4. Operacje są przetwarzane po zakończeniu wszystkich innych operacji bezczynności. |
ContextIdle | 3 | Wartość wyliczenia to 3. Operacje są przetwarzane po zakończeniu operacji w tle. |
DataBind | 8 | Wartość wyliczenia to 8. Operacje są przetwarzane z tym samym priorytetem co powiązanie danych. |
Inactive | 0 | Wartość wyliczenia to 0. Operacje nie są przetwarzane. |
Input | 5 | Wartość wyliczenia to 5. Operacje są przetwarzane w tym samym priorycie co dane wejściowe. |
Invalid | -1 | Wartość wyliczenia to -1. Jest to nieprawidłowy priorytet. |
Loaded | 6 | Wartość wyliczenia to 6. Operacje są przetwarzane po zakończeniu układu i renderowania, ale tuż przed elementami z priorytetem danych wejściowych są obsługiwane. W szczególności jest to używane podczas wywoływana zdarzenia Załadowane. |
Normal | 9 | Wartość wyliczenia to 9. Operacje są przetwarzane z normalnym priorytetem. Jest to typowy priorytet aplikacji. |
Render | 7 | Wartość wyliczenia to 7. Operacje przetwarzane w tym samym priorycie co renderowanie. |
Send | 10 | Wartość wyliczenia to 10. Operacje są przetwarzane przed innymi operacjami asynchronicznymi. Jest to najwyższy priorytet. |
SystemIdle | 1 | Wartość wyliczenia to 1. Operacje są przetwarzane, gdy system jest bezczynny. |
Przykłady
Poniższy przykład wywołuje metodę Dispatcher.BeginInvoke i przekazuje go delegatowi z jednym argumentem. Priorytet jest ustawiony na Normal
wartość .
// 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)
Uwagi
Nie ma określonego stanu systemu ani "bezczynności" odpowiadającego ApplicationIdle
i ContextIdle
w bieżącej wersji WPF. Oba są nadal ważnymi priorytetami; operacja z priorytetem ContextIdle
ma wyższy priorytet niż operacja z priorytetem SystemIdle
.
Element Dispatcher nie ogranicza wykonywania operacji, jeśli przekracza określony procent procesora CPU. Jednym ze sposobów ograniczania procesu jest użycie czasomierza.
Jeśli operacja jest publikowana Dispatcher.Invoke samodzielnie Dispatcher z priorytetem Send
, operacja pomija kolejkę i jest natychmiast wykonywana.