DispatcherPriority Enum
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Beskriver de prioriteringar där åtgärder kan anropas via Dispatcher.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Arv
Fält
| Name | Värde | Description |
|---|---|---|
| Invalid | -1 | Uppräkningsvärdet är -1. Det här är en ogiltig prioritet. |
| Inactive | 0 | Uppräkningsvärdet är 0. Åtgärder bearbetas inte. |
| SystemIdle | 1 | Uppräkningsvärdet är 1. Åtgärder bearbetas när systemet är inaktivt. |
| ApplicationIdle | 2 | Uppräkningsvärdet är 2. Åtgärder bearbetas när programmet är inaktivt. |
| ContextIdle | 3 | Uppräkningsvärdet är 3. Åtgärder bearbetas när bakgrundsåtgärderna har slutförts. |
| Background | 4 | Uppräkningsvärdet är 4. Åtgärder bearbetas när alla andra icke-inaktiva åtgärder har slutförts. |
| Input | 5 | Uppräkningsvärdet är 5. Åtgärder bearbetas med samma prioritet som indata. |
| Loaded | 6 | Uppräkningsvärdet är 6. Åtgärder bearbetas när layouten och återgivningen har slutförts, men precis innan objekt med indataprioritet betjänas. Mer specifikt används detta när du lyfter in den inlästa händelsen. |
| Render | 7 | Uppräkningsvärdet är 7. Åtgärder som bearbetas med samma prioritet som återgivning. |
| DataBind | 8 | Uppräkningsvärdet är 8. Åtgärder bearbetas med samma prioritet som databindning. |
| Normal | 9 | Uppräkningsvärdet är 9. Åtgärder bearbetas med normal prioritet. Det här är den typiska programprioriteten. |
| Send | 10 | Uppräkningsvärdet är 10. Åtgärder bearbetas före andra asynkrona åtgärder. Det här är den högsta prioriteten. |
Exempel
I följande exempel anropas Dispatcher.BeginInvoke metoden och ett ombud skickas med ett argument. Prioriteten är inställd på 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)
Kommentarer
Det finns inget specifikt systemtillstånd eller "inaktivitet" som motsvarar ApplicationIdle och ContextIdle i den aktuella versionen av WPF. Båda är fortfarande giltiga prioriteringar. en åtgärd med prioriteten ContextIdle har högre prioritet än en åtgärd med prioriteten SystemIdle.
Dispatcher Begränsar inte körningen av en åtgärd om den överskrider en viss procentandel av processorn. Ett sätt att begränsa en process är att använda en timer.
Om en åtgärd publiceras med en Dispatcher.Invoke egen Dispatcher prioritet Sendkringgår åtgärden kön och körs omedelbart.