Partager via


Dispatcher.Invoke Méthode

Définition

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

Surcharges

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(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, 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(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(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, 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(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(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(DispatcherPriority, Delegate)

Exécute le délégué spécifié de façon synchrone à la priorité spécifiée sur le thread auquel est Dispatcher 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(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)

Exécute l'objet Action spécifié de façon synchrone 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<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é.

Exemples

L’exemple suivant place un délégué sur un Dispatcher à l’aide Normal de Invoke.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Remarques

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Paramètres

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la Dispatcher file d’attente d’événements, avec lesquelles la méthode spécifiée est appelée.

timeout
TimeSpan

Durée maximale d’attente avant le démarrage de l’opération. Une fois l’opération démarrée, elle se termine avant que cette méthode ne retourne. Pour spécifier une attente infinie, utilisez la valeur -1. Dans un appel du même thread, toute autre valeur négative est convertie en -1, ce qui entraîne une attente infinie. Dans un appel inter-thread, toute autre valeur négative lève un ArgumentOutOfRangeException.

method
Delegate

Délégué vers une méthode qui prend plusieurs arguments, qui fait l'objet d'un push dans la file d'attente des événements du Dispatcher.

arg
Object

Objet à passer comme argument à la méthode spécifiée.

args
Object[]

Tableau d'objets à passer comme arguments à la méthode spécifiée.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Attributs

Exceptions

priority est égal à Inactive.

priority n’est pas un DispatcherPriority valide.

method a la valeur null.

timeout est un nombre négatif autre que -1, et cette méthode a été appelée sur les threads.

Remarques

arg peut être null si un argument n’est pas nécessaire.

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object

Paramètres

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la Dispatcher file d’attente d’événements, avec lesquelles la méthode spécifiée est appelée.

timeout
TimeSpan

Durée maximale d’attente avant le démarrage de l’opération. Une fois l’opération démarrée, elle se termine avant que cette méthode ne retourne. Pour spécifier une attente infinie, utilisez la valeur -1. Dans un appel du même thread, toute autre valeur négative est convertie en -1, ce qui entraîne une attente infinie. Dans un appel inter-thread, toute autre valeur négative lève un ArgumentOutOfRangeException.

method
Delegate

Délégué vers une méthode qui prend plusieurs arguments, qui fait l'objet d'un push dans la file d'attente des événements du Dispatcher.

arg
Object

Objet à passer comme argument à la méthode donnée. Peut être null si aucun argument n'est nécessaire.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Attributs

Exceptions

priority est égal à Inactive.

priority n'est pas une priorité valide.

method a la valeur null.

Remarques

arg peut être null si un argument n’est pas nécessaire

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Paramètres

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la Dispatcher file d’attente d’événements, avec lesquelles la méthode spécifiée est appelée.

method
Delegate

Délégué vers une méthode qui prend plusieurs arguments, qui fait l'objet d'un push dans la file d'attente des événements du Dispatcher.

arg
Object

Objet à passer comme argument à la méthode donnée.

args
Object[]

Tableau d’objets à passer comme arguments à la méthode donnée.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Attributs

Exceptions

priority est égal à Inactive.

priority n'est pas une priorité valide.

method a la valeur null.

Remarques

arg peut être null si un argument n’est pas nécessaire

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)

Paramètres

callback
Action

Délégué d’action à appeler via le répartiteur.

priority
DispatcherPriority

Priorité qui détermine l’ordre dans lequel le rappel spécifié est appelé par rapport aux autres opérations en attente dans le Dispatcher.

cancellationToken
CancellationToken

Objet qui indique s'il est nécessaire d'annuler l'action.

timeout
TimeSpan

Durée maximale d’attente avant le démarrage de l’opération. Une fois l’opération démarrée, elle se termine avant que cette méthode ne retourne. Pour spécifier une attente infinie, utilisez la valeur -1. Dans un appel du même thread, toute autre valeur négative est convertie en -1, ce qui entraîne une attente infinie. Dans un appel inter-thread, toute autre valeur négative lève un ArgumentOutOfRangeException.

Exceptions

callback a la valeur null.

timeout est un nombre négatif autre que -1, et cette méthode a été appelée sur les threads.

priority n'est pas une priorité valide.

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

S’applique à

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object

Paramètres

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la Dispatcher file d’attente d’événements, avec lesquelles la méthode spécifiée est appelée.

timeout
TimeSpan

Durée maximale d’attente avant le démarrage de l’opération. Une fois l’opération démarrée, elle se termine avant que cette méthode ne retourne. Pour spécifier une attente infinie, utilisez la valeur -1. Dans un appel du même thread, toute autre valeur négative est convertie en -1, ce qui entraîne une attente infinie. Dans un appel inter-thread, toute autre valeur négative lève un ArgumentOutOfRangeException.

method
Delegate

Délégué vers une méthode qui ne prend pas d'arguments, qui fait l'objet d'un push dans la file d'attente des événements du Dispatcher.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Attributs

Exceptions

method a la valeur null.

timeout est un nombre négatif autre que -1, et cette méthode a été appelée sur les threads.

priority est égal à Inactive.

priority n'est pas une priorité valide.

Remarques

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object

Paramètres

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la Dispatcher file d’attente d’événements, avec lesquelles la méthode spécifiée est appelée.

method
Delegate

Délégué vers une méthode qui prend un argument, qui fait l'objet d'un push dans la file d'attente des événements du Dispatcher.

arg
Object

Objet à passer comme argument à la méthode donnée.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Attributs

Exceptions

priority est égal à Inactive.

priority n'est pas une priorité valide.

method a la valeur null.

Remarques

arg peut être null si un argument n’est pas nécessaire

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object

Paramètres

method
Delegate

Délégué d'une méthode qui prend les paramètres spécifiés dans args, qui fait l'objet d'un push dans la file d'attente des événements de Dispatcher.

timeout
TimeSpan

Durée maximale d’attente avant le démarrage de l’opération. Une fois l’opération démarrée, elle se termine avant que cette méthode ne retourne. Pour spécifier une attente infinie, utilisez la valeur -1. Dans un appel du même thread, toute autre valeur négative est convertie en -1, ce qui entraîne une attente infinie. Dans un appel inter-thread, toute autre valeur négative lève un ArgumentOutOfRangeException.

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la Dispatcher file d’attente d’événements, avec lesquelles la méthode spécifiée est appelée.

args
Object[]

Tableau d’objets à passer comme arguments à la méthode donnée. Peut être null.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Exceptions

method a la valeur null.

timeout est un nombre négatif autre que -1, et cette méthode a été appelée sur les threads.

priority est égal à Inactive.

priority n'est pas une priorité valide.

Remarques

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object

Paramètres

method
Delegate

Délégué d'une méthode qui prend les paramètres spécifiés dans args, qui fait l'objet d'un push dans la file d'attente des événements de Dispatcher.

timeout
TimeSpan

Durée maximale d’attente avant le démarrage de l’opération. Toutefois, une fois l’opération démarrée, elle se termine avant que cette méthode ne retourne. Pour spécifier une attente infinie, utilisez la valeur -1. Dans un appel du même thread, toute autre valeur négative est convertie en -1, ce qui entraîne une attente infinie. Dans un appel inter-thread, toute autre valeur négative lève un ArgumentOutOfRangeException.

args
Object[]

Tableau d’objets à passer comme arguments à la méthode donnée. Peut être null si aucun argument n’est nécessaire.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Exceptions

method a la valeur null.

timeout est un nombre négatif autre que -1, et vous appelez sur plusieurs threads.

Remarques

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)

Paramètres

callback
Action

Délégué permettant d'appeler via le répartiteur.

priority
DispatcherPriority

Priorité qui détermine l’ordre dans lequel le rappel spécifié est appelé par rapport aux autres opérations en attente dans le Dispatcher.

cancellationToken
CancellationToken

Objet qui indique s'il est nécessaire d'annuler l'action.

Exceptions

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

S’applique à

Invoke(DispatcherPriority, Delegate)

Exécute le délégué spécifié de façon synchrone à la priorité spécifiée sur le thread auquel est Dispatcher associé.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object

Paramètres

priority
DispatcherPriority

Priorité avec laquelle la méthode spécifiée est appelée, par rapport aux autres opérations en attente dans la file d’attente d’événements Dispatcher .

method
Delegate

Délégué vers une méthode qui ne prend pas d'arguments, qui fait l'objet d'un push dans la file d'attente des événements du Dispatcher.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Attributs

Exceptions

priority est égal à Inactive.

priority n'est pas une priorité valide.

method a la valeur null.

Exemples

L’exemple suivant place un délégué sur un Dispatcher à l’aide Normal de Invoke.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Remarques

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object

Paramètres

method
Delegate

Délégué d'une méthode qui prend les paramètres spécifiés dans args, qui fait l'objet d'un push dans la file d'attente des événements de Dispatcher.

args
Object[]

Tableau d’objets à passer comme arguments à la méthode donnée. Peut être null.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Remarques

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)

Paramètres

callback
Action

Délégué permettant d'appeler via le répartiteur.

priority
DispatcherPriority

Priorité qui détermine l’ordre dans lequel le rappel spécifié est appelé par rapport aux autres opérations en attente dans le Dispatcher.

S’applique à

Invoke(Action)

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

public:
 void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)

Paramètres

callback
Action

Délégué permettant d'appeler via le répartiteur.

Remarques

La priorité par défaut est DispatcherPriority.Send.

S’applique à

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

public:
 System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object

Paramètres

method
Delegate

Délégué d'une méthode qui prend les paramètres spécifiés dans args, qui fait l'objet d'un push dans la file d'attente des événements de Dispatcher.

priority
DispatcherPriority

Priorité avec laquelle la méthode spécifiée est appelée, par rapport aux autres opérations en attente dans la file d’attente d’événements Dispatcher .

args
Object[]

Tableau d’objets à passer comme arguments à la méthode donnée. Peut être null.

Retours

Valeur de retour du délégué appelé ou null si le délégué n'a pas de valeur de retour.

Remarques

Dans WPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet. Par exemple, un thread d’arrière-plan qui est extrait du thread d’interface utilisateur main ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur. Pour que le thread d’arrière-plan accède à la propriété Content du Button, le thread d’arrière-plan doit déléguer le travail au associé au Dispatcher thread d’interface utilisateur. Pour ce faire, utilisez Invoke ou BeginInvoke. Invoke est synchrone et BeginInvoke asynchrone. L’opération est ajoutée à la file d’attente d’événements du Dispatcher au spécifié DispatcherPriority.

Invoke est une opération synchrone ; Par conséquent, le contrôle ne reviendra à l’objet appelant qu’après le retour du rappel.

S’applique à

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult> (Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult

Paramètres de type

TResult

Type de valeur de retour du délégué spécifié.

Paramètres

callback
Func<TResult>

Délégué permettant d'appeler via le répartiteur.

Retours

TResult

Valeur retournée par callback.

S’applique à

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult

Paramètres de type

TResult

Type de valeur de retour du délégué spécifié.

Paramètres

callback
Func<TResult>

Délégué permettant d'appeler via le répartiteur.

priority
DispatcherPriority

Priorité qui détermine l’ordre dans lequel le rappel spécifié est appelé par rapport aux autres opérations en attente dans le Dispatcher.

Retours

TResult

Valeur retournée par callback.

S’applique à

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult

Paramètres de type

TResult

Type de valeur de retour du délégué spécifié.

Paramètres

callback
Func<TResult>

Délégué permettant d'appeler via le répartiteur.

priority
DispatcherPriority

Priorité qui détermine l’ordre dans lequel le rappel spécifié est appelé par rapport aux autres opérations en attente dans le Dispatcher.

cancellationToken
CancellationToken

Objet qui indique s'il est nécessaire d'annuler l'opération.

Retours

TResult

Valeur retournée par callback.

Exceptions

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

S’applique à

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

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult

Paramètres de type

TResult

Type de valeur de retour du délégué spécifié.

Paramètres

callback
Func<TResult>

Délégué permettant d'appeler via le répartiteur.

priority
DispatcherPriority

Priorité qui détermine l’ordre dans lequel le rappel spécifié est appelé par rapport aux autres opérations en attente dans le Dispatcher.

cancellationToken
CancellationToken

Objet qui indique s'il est nécessaire d'annuler l'opération.

timeout
TimeSpan

Durée maximale d’attente avant le démarrage de l’opération. Une fois l’opération démarrée, elle se termine avant que cette méthode ne retourne. Pour spécifier une attente infinie, utilisez la valeur -1. Dans un appel du même thread, toute autre valeur négative est convertie en -1, ce qui entraîne une attente infinie. Dans un appel inter-thread, toute autre valeur négative lève un ArgumentOutOfRangeException.

Retours

TResult

Valeur retournée par callback.

Exceptions

callback a la valeur null.

timeout est un nombre négatif autre que -1, et la méthode a été appelée sur plusieurs threads.

priority n'est pas une priorité valide.

Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.

S’applique à