Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

Dispatcher, classe

Fournit des services pour la gestion de la file d'attente des éléments de travail d'un thread.

System.Object
  System.Windows.Threading.Dispatcher

Espace de noms :  System.Windows.Threading
Assembly :  WindowsBase (dans WindowsBase.dll)

public sealed class Dispatcher

Le type Dispatcher expose les membres suivants.

  NomDescription
Propriété publiqueMembre statiqueCurrentDispatcherObtient le Dispatcher pour le thread en cours d'exécution et crée un nouveau Dispatcher si aucun n'est déjà associé au thread.
Propriété publiqueHasShutdownFinishedDétermine si l'arrêt du Dispatcher a abouti.
Propriété publiqueHasShutdownStartedDétermine si le processus d'arrêt du Dispatcher est en cours.
Propriété publiqueHooksObtient la collection de raccordements qui fournissent des informations d'événement supplémentaires sur le Dispatcher.
Propriété publiqueThreadObtient le thread auquel ce Dispatcher est associé.
Début

  NomDescription
Méthode publiqueBeginInvoke(Action)
Méthode publiqueBeginInvoke(Delegate, Object[])Exécute de façon asynchrone le délégué spécifié avec les arguments spécifiés sur le thread sur lequel le Dispatcher spécifié a été créé.
Méthode publiqueBeginInvoke(DispatcherPriority, Delegate)Exécute le délégué spécifié de façon asynchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueBeginInvoke(Delegate, DispatcherPriority, Object[])Exécute le délégué spécifié de façon asynchrone selon la priorité indiquée et avec les arguments définis, sur le thread sur lequel Dispatcher a été créé.
Méthode publiqueBeginInvoke(DispatcherPriority, Delegate, Object)Exécute le délégué spécifié de façon asynchrone selon la priorité indiquée et avec l'argument défini au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueBeginInvoke(DispatcherPriority, Delegate, Object, Object[])Exécute le délégué spécifié de façon asynchrone selon la priorité indiquée et avec le tableau d'arguments défini au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueBeginInvokeShutdownInitialise de façon asynchrone l'arrêt du Dispatcher.
Méthode publiqueCheckAccessDétermine si le thread appelant est le thread associé à ce Dispatcher.
Méthode publiqueDisableProcessingDésactive le traitement de la file d'attente du Dispatcher.
Méthode publiqueEquals(Object)Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.)
Méthode publiqueMembre statiqueExitAllFramesDemande la fermeture de tous les frames, y compris les frames imbriqués.
Méthode publiqueMembre statiqueFromThreadObtient le Dispatcher pour le thread spécifié.
Méthode publiqueGetHashCodeSert de fonction de hachage par défaut. (Hérité de Object.)
Méthode publiqueGetTypeObtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publiqueInvoke(Action)Exécute l'objet Action spécifié de façon synchrone au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(Action, DispatcherPriority)Exécute l'objet Action spécifié de façon synchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(Delegate, Object[])Exécute le délégué spécifié de façon synchrone avec les arguments spécifiés, sur le thread auquel Dispatcher est associé.
Méthode publiqueInvoke(DispatcherPriority, Delegate)Exécute le délégué spécifié de façon synchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(Action, DispatcherPriority, CancellationToken)Exécute l'objet Action spécifié de façon synchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(Delegate, TimeSpan, Object[])Exécute le délégué spécifié de façon synchrone, dans l'intervalle de temps spécifié, selon la priorité indiquée et avec les arguments définis sur le thread auquel Dispatcher est associé.
Méthode publiqueInvoke(Delegate, DispatcherPriority, Object[])Exécute le délégué spécifié de façon synchrone selon la priorité indiquée et avec les arguments définis au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(DispatcherPriority, Delegate, Object)Exécute le délégué spécifié de façon synchrone selon la priorité indiquée et avec l'argument défini au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(DispatcherPriority, TimeSpan, Delegate)Exécute le délégué spécifié de façon synchrone selon la priorité indiquée et avec la valeur de délai d'attente définie au niveau du thread sur lequel le Dispatcher a été créé.
Méthode publiqueInvoke(Action, DispatcherPriority, CancellationToken, TimeSpan)Exécute l'objet Action spécifié de façon synchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(Delegate, TimeSpan, DispatcherPriority, Object[])Exécute le délégué spécifié de façon synchrone, dans l'intervalle de temps spécifié, selon la priorité indiquée et avec les arguments définis sur le thread auquel Dispatcher est associé.
Méthode publiqueInvoke(DispatcherPriority, Delegate, Object, Object[])Exécute le délégué spécifié de façon synchrone selon la priorité indiquée et avec les arguments définis au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(DispatcherPriority, TimeSpan, Delegate, Object)Exécute le délégué spécifié de façon synchrone selon la priorité indiquée et avec l'argument défini au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])Exécute le délégué spécifié de façon synchrone selon la priorité indiquée et avec les arguments définis au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke<TResult>(Func<TResult>)Exécute l'objet Func<TResult> spécifié de façon synchrone au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke<TResult>(Func<TResult>, DispatcherPriority)Exécute l'objet Func<TResult> spécifié de façon synchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)Exécute l'objet Func<TResult> spécifié de façon synchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)Exécute l'objet Func<TResult> spécifié de façon synchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvokeAsync(Action)Exécute l'objet Action spécifié de façon asynchrone au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvokeAsync(Action, DispatcherPriority)Exécute l'objet Action spécifié de façon asynchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvokeAsync(Action, DispatcherPriority, CancellationToken)Exécute l'objet Action spécifié de façon asynchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvokeAsync<TResult>(Func<TResult>)Exécute l'objet Func<TResult> spécifié de façon asynchrone au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvokeAsync<TResult>(Func<TResult>, DispatcherPriority)Exécute l'objet Func<TResult> spécifié de façon asynchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)Exécute l'objet Func<TResult> spécifié de façon synchrone selon la priorité spécifiée au niveau du thread auquel le Dispatcher est associé.
Méthode publiqueInvokeShutdownInitialise de façon synchrone le processus d'arrêt du Dispatcher.
Méthode publiqueMembre statiquePushFrameEntame une boucle d'exécution.
Méthode publiqueMembre statiqueRunExécute un push du frame d'exécution principal au niveau de la file d'attente des événements du Dispatcher.
Méthode publiqueToStringRetourne une chaîne qui représente l'objet actif. (Hérité de Object.)
Méthode publiqueMembre statiqueValidatePriorityDétermine si la priorité DispatcherPriority spécifiée est une priorité valide.
Méthode publiqueVerifyAccessDétermine si le thread appelant a accès à ce Dispatcher.
Méthode publiqueMembre statiqueYield()Crée un objet awaitable qui renvoie de façon asynchrone le contrôle au répartiteur actuel et offre la possibilité au répartiteur de gérer d'autres événements.
Méthode publiqueMembre statiqueYield(DispatcherPriority)Crée un objet awaitable qui renvoie de façon asynchrone le contrôle au répartiteur actuel et offre la possibilité au répartiteur de gérer d'autres événements. Travail qui se produit lorsqu'un contrôle retourne au code qui attend le résultat de cette méthode est planifiés avec la priorité spécifiée.
Début

  NomDescription
Événement publicShutdownFinishedSe produit une fois l'arrêt du Dispatcher accompli.
Événement publicShutdownStartedSe produit au début du processus d'arrêt du Dispatcher.
Événement publicUnhandledExceptionSe produit lorsqu'une exception de thread est levée et non interceptée pendant l'exécution d'un délégué au moyen de Invoke ou de BeginInvoke.
Événement publicUnhandledExceptionFilterSe produit lorsqu'une exception de thread est levée et non interceptée pendant l'exécution d'un délégué au moyen de Invoke ou de BeginInvoke lors de l'étape de filtrage.
Début

  NomDescription
Méthode d'extension publiqueBeginInvoke(Action)Surchargé. Exécute de façon asynchrone le délégué spécifié avec priorité normale sur le thread sur lequel le Dispatcher spécifié a été créé. (Défini par DispatcherExtensions.)
Méthode d'extension publiqueBeginInvoke(Action, DispatcherPriority)Surchargé. Exécute de façon asynchrone le délégué spécifié avec la priorité spécifiée sur le thread sur lequel le Dispatcher spécifié a été créé. (Défini par DispatcherExtensions.)
Méthode d'extension publiqueInvoke(Action)Surchargé. Exécute de façon synchrone le délégué spécifié avec priorité normale sur le thread sur lequel le Dispatcher spécifié a été créé. (Défini par DispatcherExtensions.)
Méthode d'extension publiqueInvoke(Action, TimeSpan)Surchargé. Exécute de façon synchrone le délégué spécifié sur le thread sur lequel le Dispatcher spécifié a été créé et arrête l'exécution après le délai d'attente spécifié. (Défini par DispatcherExtensions.)
Méthode d'extension publiqueInvoke(Action, DispatcherPriority)Surchargé. Exécute de façon synchrone le délégué spécifié avec la priorité spécifiée sur le thread sur lequel le Dispatcher spécifié a été créé. (Défini par DispatcherExtensions.)
Méthode d'extension publiqueInvoke(Action, TimeSpan, DispatcherPriority)Surchargé. Exécute de façon synchrone le délégué spécifié avec la priorité spécifiée sur le thread sur lequel le Dispatcher spécifié a été créé et arrête l'exécution après le délai d'attente spécifié. (Défini par DispatcherExtensions.)
Début

Dispatcher gère une file d'attente classée par ordre de priorité des éléments de travail pour un thread spécifique.

Lorsqu'un Dispatcher est créé sur un thread, il devient le seul Dispatcher à pouvoir être associé au thread, même si le Dispatcher est arrêté.

Si vous tentez d'obtenir le CurrentDispatcher pour le thread actuel et qu'aucun Dispatcher n'est associé à ce dernier, un Dispatcher est créé. Dispatcher est créé également lorsque vous créez DispatcherObject. Si vous créez Dispatcher sur un thread d'arrière-plan, veillez à désactiver le répartiteur avant de quitter le thread.

Si un Dispatcher est arrêté, il ne peut pas être redémarré.

Dans WPF, un DispatcherObject n'est accessible que par le Dispatcher auquel il est associé.  Par exemple, un thread d'arrière-plan ne peut pas mettre à jour le contenu d'un Button associé au Dispatcher sur le thread d'interface utilisateur. Pour que le thread d'arrière-plan puisse accéder à la propriété Content de Button, le thread d'arrière-plan doit déléguer le travail au Dispatcher associé au thread d'interface utilisateur. Pour y parvenir, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke est asynchrone. L'opération est ajoutée à la file d'attente du Dispatcher selon la priorité DispatcherPriority spécifiée.

Si BeginInvoke est appelé au niveau d'un Dispatcher qui s'est arrêté, la propriété d'état du DispatcherOperation retourné a la valeur Aborted.

Toutes les méthodes au niveau de Dispatcher, à l'exception de DisableProcessing, sont libres de threads.

Les objets qui dérivent de DispatcherObject ont une affinité de thread.

Les objets qui dérivent de Freezable sont libres de threads lorsqu'ils sont figés. Pour plus d'informations, consultez Vue d'ensemble des objets Freezable.

L'exemple suivant montre comment placer une opération sur un Dispatcher. Pour obtenir le code source complet de cet exemple, consultez Single-Threaded Application with Long-Running Calculation Sample (page éventuellement en anglais) .

Dans un premier temps, un délégué n'acceptant aucun argument est créé.


public delegate void NextPrimeDelegate();


Ensuite, BeginInvoke(DispatcherPriority, Delegate) est appelé. Cet appel à BeginInvoke(DispatcherPriority, Delegate) prend deux paramètres : la priorité, qui a la valeur DispatcherPriority.Normal, et le rappel, qui est passé par le biais d'une instance du délégué NextPrimeDelegate.


startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft