Dispatcher Classe

Définition

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

public ref class Dispatcher sealed
public sealed class Dispatcher
type Dispatcher = class
Public NotInheritable Class Dispatcher
Héritage
Dispatcher

Exemples

L’exemple suivant montre comment placer une opération sur un Dispatcher. Pour obtenir le code source complet de cet exemple, consultez application monothread avec Long-Running exemple de calcul.

Tout d’abord, un délégué est créé qui n’accepte aucun argument.

public delegate void NextPrimeDelegate();
Public Delegate Sub NextPrimeDelegate()

Ensuite, BeginInvoke(DispatcherPriority, Delegate) on appelle. Cet appel prend BeginInvoke(DispatcherPriority, Delegate) deux paramètres : la priorité, définie DispatcherPriority.Normalsur , et le rappel, qui est transmis via une instance du délégué NextPrimeDelegate.

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

Remarques

Le service Dispatcher gère une file d’attente hiérarchisée d’éléments de travail pour un thread spécifique.

Lorsqu’un Dispatcher thread est créé sur un thread, il devient le seul Dispatcher qui peut être associé au thread, même si celui-ci Dispatcher est arrêté.

Si vous tentez d’obtenir le CurrentDispatcher thread actuel et qu’un Dispatcher thread n’est pas associé au thread, un Dispatcher sera créé. Un Dispatcher est également créé lorsque vous créez un DispatcherObject. Si vous créez un Dispatcher thread d’arrière-plan, veillez à arrêter le répartiteur avant de quitter le thread.

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

Dans WPF, un DispatcherObject accès est accessible uniquement par celui Dispatcher auquel il est associé. Par exemple, un thread d’arrière-plan ne peut pas mettre à jour le contenu d’un Button thread associé au Dispatcher thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la Content propriété du Buttonthread d’arrière-plan, le thread d’arrière-plan doit déléguer le travail au Dispatcher thread d’interface utilisateur associé. Pour ce faire, utilisez l’une ou BeginInvokel’autre Invoke des opérations suivantes . Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente du Dispatcher fichier spécifié DispatcherPriority.

Si BeginInvoke elle est appelée sur un Dispatcher arrêt, la propriété d’état du retour DispatcherOperation est définie Abortedsur .

Toutes les méthodes sur Dispatcher, à l’exception de DisableProcessing, sont threadées libres.

Les objets dérivés d’une DispatcherObject affinité de thread.

Les objets dérivés d’un Freezable thread libre lorsqu’ils sont figés. Pour plus d’informations, consultez Vue d’ensemble des objets Freezable.

Propriétés

CurrentDispatcher

Obtient 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.

HasShutdownFinished

Détermine si l'arrêt du Dispatcher a abouti.

HasShutdownStarted

Détermine si le processus d'arrêt du Dispatcher est en cours.

Hooks

Obtient la collection de raccordements qui fournissent des informations d'événement supplémentaires sur le Dispatcher.

Thread

Obtient le thread auquel ce Dispatcher est associé.

Méthodes

BeginInvoke(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éé.

BeginInvoke(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éé.

BeginInvoke(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é.

BeginInvoke(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é.

BeginInvoke(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é.

BeginInvokeShutdown(DispatcherPriority)

Initialise de façon asynchrone l'arrêt du Dispatcher.

CheckAccess()

Détermine si le thread appelant est le thread associé à ce Dispatcher.

DisableProcessing()

Désactive le traitement de la file d'attente du Dispatcher.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
ExitAllFrames()

Demande la fermeture de tous les frames, y compris les frames imbriqués.

FromThread(Thread)

Obtient le Dispatcher pour le thread spécifié.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
Invoke(Action)

Exécute l'objet Action spécifié de façon synchrone au niveau du thread auquel le Dispatcher est associé.

Invoke(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é.

Invoke(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é.

Invoke(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é.

Invoke(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é.

Invoke(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é.

Invoke(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é.

Invoke(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é.

Invoke(DispatcherPriority, Delegate)

Exécute le délégué spécifié de manière synchrone au niveau de la priorité spécifiée sur le thread auquel il Dispatcher est associé.

Invoke(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é.

Invoke(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é.

Invoke(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éé.

Invoke(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é.

Invoke(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é.

Invoke<TResult>(Func<TResult>)

Exécute l'objet Func<TResult> spécifié de façon synchrone au niveau du thread auquel le Dispatcher est associé.

Invoke<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é.

Invoke<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é.

Invoke<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é.

InvokeAsync(Action)

Exécute l'objet Action spécifié de façon asynchrone au niveau du thread auquel le Dispatcher est associé.

InvokeAsync(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é.

InvokeAsync(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é.

InvokeAsync<TResult>(Func<TResult>)

Exécute l'objet Func<TResult> spécifié de façon asynchrone au niveau du thread auquel le Dispatcher est associé.

InvokeAsync<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é.

InvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

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é.

InvokeShutdown()

Initialise de façon synchrone le processus d'arrêt du Dispatcher.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
PushFrame(DispatcherFrame)

Entame une boucle d'exécution.

Run()

Exécute un push du frame d'exécution principal au niveau de la file d'attente des événements du Dispatcher.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
ValidatePriority(DispatcherPriority, String)

Détermine si la priorité DispatcherPriority spécifiée est une priorité valide.

VerifyAccess()

Détermine si le thread appelant a accès à ce Dispatcher.

Yield()

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.

Yield(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.

Événements

ShutdownFinished

Se produit une fois l'arrêt du Dispatcher accompli.

ShutdownStarted

Se produit au début du processus d'arrêt du Dispatcher.

UnhandledException

Se 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.

UnhandledExceptionFilter

Se 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.

Méthodes d’extension

BeginInvoke(Dispatcher, Action)

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éé.

BeginInvoke(Dispatcher, Action, DispatcherPriority)

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éé.

Invoke(Dispatcher, Action)

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éé.

Invoke(Dispatcher, Action, TimeSpan)

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é.

Invoke(Dispatcher, Action, TimeSpan, DispatcherPriority)

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é.

Invoke(Dispatcher, Action, DispatcherPriority)

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éé.

S’applique à

Voir aussi