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 selon lesquelles les opérations peuvent être appelées par le biais de Dispatcher.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Héritage
Champs
ApplicationIdle | 2 | La valeur d’énumération est 2. Les opérations sont traitées lorsque l'application est inactive. |
Background | 4 | La valeur d’énumération est 4. Les opérations sont traitées après l'aboutissement de toutes les autres opérations actives. |
ContextIdle | 3 | La valeur d’énumération est 3. Les opérations sont traitées après l'aboutissement des opérations d'arrière-plan. |
DataBind | 8 | La valeur d’énumération est 8. Les opérations sont traitées selon la même priorité que la liaison de données. |
Inactive | 0 | La valeur d’énumération est 0. Les opérations ne sont pas traitées. |
Input | 5 | La valeur d’énumération est 5. Les opérations sont traitées selon la même priorité qu'une entrée. |
Invalid | -1 | La valeur d'énumération est -1. C'est une priorité non valide. |
Loaded | 6 | La valeur d’énumération est 6. Les opérations sont traitées lorsque la mise en page et le rendu sont finaux, mais juste avant que les éléments ayant une priorité d'entrée ne soient gérés. Cette valeur est utilisée tout particulièrement lors du déclenchement de l'événement Loaded. |
Normal | 9 | La valeur d’énumération est 9. Les opérations sont traitées à une priorité normale. C'est la priorité typique d'une application. |
Render | 7 | La valeur d’énumération est 7. Les opérations sont traitées selon la même priorité qu'un rendu. |
Send | 10 | La valeur d’énumération est 10. Les opérations sont traitées avant les autres opérations asynchrones. C'est la priorité la plus élevée. |
SystemIdle | 1 | La valeur d’énumération est 1. Les opérations sont traitées lorsque le système est inactif. |
Exemples
L’exemple suivant appelle la Dispatcher.BeginInvoke méthode et lui transmet un délégué avec un seul argument. La priorité est définie Normal
sur .
// 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
la ContextIdle
version actuelle de WPF. Les deux sont toujours des priorités valides; une opération dont ContextIdle
la priorité est supérieure à celle d’une opération dont la priorité est SystemIdle
.
L’exécution Dispatcher d’une opération n’est pas limitée 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.