DispatcherPriority Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Décrit les priorités auxquelles les opérations peuvent être appelées par le biais de la Dispatcher.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Héritage
Champs
| Nom | Valeur | Description |
|---|---|---|
| Invalid | -1 | La valeur d’énumération est -1. Il s’agit d’une priorité non valide. |
| Inactive | 0 | La valeur d’énumération est 0. Les opérations ne sont pas traitées. |
| SystemIdle | 1 | La valeur d’énumération est 1. Les opérations sont traitées lorsque le système est inactif. |
| ApplicationIdle | 2 | La valeur d’énumération est 2. Les opérations sont traitées lorsque l’application est inactive. |
| ContextIdle | 3 | La valeur d’énumération est 3. Les opérations sont traitées une fois les opérations en arrière-plan terminées. |
| Background | 4 | La valeur d’énumération est 4. Les opérations sont traitées une fois toutes les autres opérations non inactives terminées. |
| Input | 5 | La valeur d’énumération est 5. Les opérations sont traitées en même temps que les entrées. |
| Loaded | 6 | La valeur d’énumération est 6. Les opérations sont traitées lorsque la disposition et le rendu sont terminés, mais juste avant que les éléments de la priorité d’entrée soient pris en compte. Plus précisément, cela est utilisé lors du déclenchement de l’événement Loaded. |
| Render | 7 | La valeur d’énumération est 7. Les opérations traitées au même niveau de priorité que le rendu. |
| DataBind | 8 | La valeur d’énumération est 8. Les opérations sont traitées en même temps que la liaison de données. |
| Normal | 9 | La valeur d’énumération est 9. Les opérations sont traitées en priorité normale. Il s’agit de la priorité d’application classique. |
| Send | 10 | La valeur d’énumération est 10. Les opérations sont traitées avant d’autres opérations asynchrones. Il s’agit de la priorité la plus élevée. |
Exemples
L’exemple suivant appelle la méthode et le Dispatcher.BeginInvoke transmet à un délégué avec un seul argument. La priorité est définie sur 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)
Remarques
Il n’existe aucun état système spécifique ou « inactivité » correspondant à ApplicationIdle et ContextIdle dans la version actuelle de WPF. Les deux sont toujours des priorités valides ; une opération dont la priorité ContextIdle est supérieure à celle d’une opération avec une priorité de SystemIdle.
L’opération Dispatcher ne limite pas l’exécution d’une opération si elle dépasse un certain pourcentage de l’UC. Une façon de limiter un processus consiste à utiliser un minuteur.
Si une opération est publiée à l’aide Dispatcher.Invoke de sa propre Dispatcher priorité Send, l’opération contourne la file d’attente et est immédiatement exécutée.