Dispatcher.BeginInvoke Méthode

Définition

Exécute de façon asynchrone un délégué sur le thread auquel le Dispatcher est associé.Executes a delegate asynchronously on the thread the Dispatcher is associated with.

Surcharges

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éé.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

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é.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

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éé.Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

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é.Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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é.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

Remarques

Dans WPFWPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet.In WPFWPF, only the thread that created a DispatcherObject may access that object. Par exemple, un thread d’arrière-plan qui est lancé à partir du thread d’interface utilisateur principal ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Pour que le thread d’arrière-plan accède à la propriété de contenu du Button, le thread d’arrière-plan doit déléguer le travail au Dispatcher associé au thread d’interface utilisateur.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Pour ce faire, utilisez Invoke ou BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke est synchrone et BeginInvoke est asynchrone.Invoke is synchronous and BeginInvoke is asynchronous. L’opération est ajoutée à la file d’attente des événements de la Dispatcher au niveau de la DispatcherPriorityspécifiée.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

BeginInvoke est asynchrone ; par conséquent, le contrôle retourne immédiatement à l’objet appelant une fois qu’il est appelé.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

BeginInvoke retourne un objet DispatcherOperation qui peut être utilisé pour interagir avec le délégué lorsque celui-ci se trouve dans la file d’attente des événements.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

L’objet DispatcherOperation retourné par BeginInvoke peut être utilisé de plusieurs façons pour interagir avec le délégué spécifié, par exemple :The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modification de la DispatcherPriority du délégué en attente d’exécution dans la file d’attente des événements.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Suppression du délégué de la file d’attente d’événements.Removing the delegate from the event queue.

  • En attente du retour du délégué.Waiting for the delegate to return.

  • Obtention de la valeur retournée par le délégué après son exécution.Obtaining the value that the delegate returns after it is executed.

Si plusieurs appels de BeginInvoke sont effectués au même DispatcherPriority, ils sont exécutés dans l’ordre dans lequel les appels ont été effectués.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Si BeginInvoke est appelé sur un Dispatcher qui a été arrêté, la propriété Status de la DispatcherOperation retournée est définie sur Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

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éé.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

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

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.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

args
Object[]

Tableau d’objets à passer comme arguments à la méthode donnée.An array of objects to pass as arguments to the given method. Peut être null.Can be null.

Retours

DispatcherOperation

Objet qui est retourné immédiatement après l'appel de BeginInvoke et qui peut être utilisé pour interagir avec le délégué en attente d'exécution dans la file d'attente des événements.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Remarques

L’objet DispatcherOperation retourné par BeginInvoke peut être utilisé de plusieurs façons pour interagir avec le délégué spécifié, par exemple :The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modification de la DispatcherPriority du délégué en attente d’exécution dans la file d’attente des événements.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Suppression du délégué de la file d’attente d’événements.Removing the delegate from the event queue.

  • En attente du retour du délégué.Waiting for the delegate to return.

  • Obtention de la valeur retournée par le délégué après son exécution.Obtaining the value that the delegate returns after it is executed.

BeginInvoke est asynchrone ; par conséquent, le contrôle retourne immédiatement à l’objet appelant une fois qu’il est appelé.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

Dans WPFWPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet.In WPFWPF, only the thread that created a DispatcherObject may access that object. Par exemple, un thread d’arrière-plan qui est lancé à partir du thread d’interface utilisateur principal ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Pour que le thread d’arrière-plan accède à la propriété de contenu du Button, le thread d’arrière-plan doit déléguer le travail au Dispatcher associé au thread d’interface utilisateur.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Pour ce faire, utilisez Invoke ou BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke est synchrone et BeginInvoke est asynchrone.Invoke is synchronous and BeginInvoke is asynchronous. L’opération est ajoutée à la file d’attente des événements de la Dispatcher au niveau de la DispatcherPriorityspécifiée.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si BeginInvoke est appelé sur un Dispatcher qui a été arrêté, la propriété Status de la DispatcherOperation retournée est définie sur Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

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é.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

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

Paramètres

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la file d'attente des événements du Dispatcher, à laquelle la méthode spécifiée est appelée.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

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.The delegate to a method that takes no arguments, which is pushed onto the Dispatcher event queue.

Retours

DispatcherOperation

Objet qui est retourné immédiatement après l'appel de BeginInvoke et qui peut être utilisé pour interagir avec le délégué en attente d'exécution dans la file d'attente des événements.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Attributs

Exceptions

method a la valeur null.method is null.

priority n’est pas un DispatcherPriority valide.priority is not a valid DispatcherPriority.

Exemples

L’exemple suivant montre comment placer une opération sur un Dispatcher.The following example shows how to place an operation onto a Dispatcher. Pour obtenir le code source complet de cet exemple, consultez exemple d’application à thread unique avec un calcul de longue durée.For the full source code of this example, see Single-Threaded Application with Long-Running Calculation Sample.

Tout d’abord, un délégué qui n’accepte aucun argument est créé.First, a delegate is created that accepts no arguments.

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

Ensuite, BeginInvoke(DispatcherPriority, Delegate) est appelée.Next, BeginInvoke(DispatcherPriority, Delegate) is called. Étant donné que chaque DispatcherObject a une propriété qui retourne le Dispatcher auquel elle est associée, le Dispatcher souhaité est obtenu en interrogeant le DispatcherObject, dans ce cas, une Button nommée startStopButton.Because every DispatcherObject has a property that returns the Dispatcher it is associated with, the desired Dispatcher is obtained by querying the DispatcherObject, in this case a Button named startStopButton. L’appel à BeginInvoke(DispatcherPriority, Delegate) accepte deux paramètres : la priorité, qui est définie sur DispatcherPriority.Normalet le rappel, qui est transmis via une instance du NextPrimeDelegatedélégué.The call to BeginInvoke(DispatcherPriority, Delegate) takes two parameters: the priority, which is set to DispatcherPriority.Normal, and the callback, which is passed in through an instance of the delegate NextPrimeDelegate.

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

Remarques

Si plusieurs appels de BeginInvoke sont effectués au même DispatcherPriority, ils sont exécutés dans l’ordre dans lequel les appels ont été effectués.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

BeginInvoke retourne un objet DispatcherOperation qui peut être utilisé pour interagir avec le délégué lorsque celui-ci se trouve dans la file d’attente des événements.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

L’objet DispatcherOperation retourné par BeginInvoke peut être utilisé de plusieurs façons pour interagir avec le délégué spécifié, par exemple :The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modification de la DispatcherPriority du délégué en attente d’exécution dans la file d’attente des événements.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Suppression du délégué de la file d’attente d’événements.Removing the delegate from the event queue.

  • En attente du retour du délégué.Waiting for the delegate to return.

  • Obtention de la valeur retournée par le délégué après son exécution.Obtaining the value that the delegate returns after it is executed.

BeginInvoke est asynchrone ; par conséquent, le contrôle retourne immédiatement à l’objet appelant une fois qu’il est appelé.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

Dans WPFWPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet.In WPFWPF, only the thread that created a DispatcherObject may access that object. Par exemple, un thread d’arrière-plan qui est lancé à partir du thread d’interface utilisateur principal ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Pour que le thread d’arrière-plan accède à la propriété de contenu du Button, le thread d’arrière-plan doit déléguer le travail au Dispatcher associé au thread d’interface utilisateur.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Pour ce faire, utilisez Invoke ou BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke est synchrone et BeginInvoke est asynchrone.Invoke is synchronous and BeginInvoke is asynchronous. L’opération est ajoutée à la file d’attente des événements de la Dispatcher au niveau de la DispatcherPriorityspécifiée.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si BeginInvoke est appelé sur un Dispatcher qui a été arrêté, la propriété Status de la DispatcherOperation retournée est définie sur Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Voir aussi

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éé.Executes the specified delegate asynchronously with the specified arguments, at the specified priority, on the thread that the Dispatcher was created on.

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

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.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la file d'attente des événements du Dispatcher, à laquelle la méthode spécifiée est appelée.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

args
Object[]

Tableau d’objets à passer comme arguments à la méthode donnée.An array of objects to pass as arguments to the given method. Peut être null.Can be null.

Retours

DispatcherOperation

Objet qui est retourné immédiatement après l'appel de BeginInvoke et qui peut être utilisé pour interagir avec le délégué en attente d'exécution dans la file d'attente des événements.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Remarques

L’objet DispatcherOperation retourné par BeginInvoke peut être utilisé de plusieurs façons pour interagir avec le délégué spécifié, par exemple :The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modification de la DispatcherPriority du délégué en attente d’exécution dans la file d’attente des événements.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Suppression du délégué de la file d’attente d’événements.Removing the delegate from the event queue.

  • En attente du retour du délégué.Waiting for the delegate to return.

  • Obtention de la valeur retournée par le délégué après son exécution.Obtaining the value that the delegate returns after it is executed.

BeginInvoke est asynchrone ; par conséquent, le contrôle retourne immédiatement à l’objet appelant une fois qu’il est appelé.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

Dans WPFWPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet.In WPFWPF, only the thread that created a DispatcherObject may access that object. Par exemple, un thread d’arrière-plan qui est lancé à partir du thread d’interface utilisateur principal ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Pour que le thread d’arrière-plan accède à la propriété de contenu du Button, le thread d’arrière-plan doit déléguer le travail au Dispatcher associé au thread d’interface utilisateur.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Pour ce faire, utilisez Invoke ou BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke est synchrone et BeginInvoke est asynchrone.Invoke is synchronous and BeginInvoke is asynchronous. L’opération est ajoutée à la file d’attente des événements de la Dispatcher au niveau de la DispatcherPriorityspécifiée.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si BeginInvoke est appelé sur un Dispatcher qui a été arrêté, la propriété Status de la DispatcherOperation retournée est définie sur Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

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é.Executes the specified delegate asynchronously at the specified priority and with the specified argument on the thread the Dispatcher is associated with.

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

Paramètres

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la file d'attente des événements du Dispatcher, à laquelle la méthode spécifiée est appelée.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

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.A delegate to a method that takes one argument, which is pushed onto the Dispatcher event queue.

arg
Object

Objet à passer comme argument à la méthode spécifiée.The object to pass as an argument to the specified method.

Retours

DispatcherOperation

Objet qui est retourné immédiatement après l'appel de BeginInvoke et qui peut être utilisé pour interagir avec le délégué en attente d'exécution dans la file d'attente des événements.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the event queue.

Attributs

Exceptions

method a la valeur null.method is null.

priority n’est pas un DispatcherPriority valide.priority is not a valid DispatcherPriority.

Exemples

L’exemple suivant montre comment placer une opération sur un Dispatcher.The following example shows how to place an operation onto a Dispatcher.

Tout d’abord, un délégué qui accepte un argument, dans ce cas une chaîne, est créé.First, a delegate is created that accepts one argument, in this case a string.

private delegate void OneArgDelegate(String arg);
Private Delegate Sub OneArgDelegate(ByVal arg As String)

Ensuite, BeginInvoke(DispatcherPriority, Delegate, Object) est appelée.Next, BeginInvoke(DispatcherPriority, Delegate, Object) is called. Étant donné que chaque DispatcherObject a une propriété qui retourne le Dispatcher auquel elle est associée, le Dispatcher souhaité est obtenu en interrogeant le DispatcherObject, dans ce cas, une Grid nommée tomorrowsWeather.Because every DispatcherObject has a property that returns the Dispatcher it is associated with, the desired Dispatcher is obtained by querying the DispatcherObject, in this case a Grid named tomorrowsWeather. L’appel à BeginInvoke(DispatcherPriority, Delegate, Object) prend trois paramètres : la priorité, qui est définie sur DispatcherPriority.Normal; le rappel, qui est passé via une instance du délégué OneArgDelegate; et une chaîne nommée weather, qui est l’argument pour le rappel.The call to BeginInvoke(DispatcherPriority, Delegate, Object) takes three parameters: the priority, which is set to DispatcherPriority.Normal; the callback, which is passed in through an instance of the delegate OneArgDelegate; and a string named weather, which is the argument for the callback.

// 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

Arg peut être null si aucun argument n’est nécessaire.Arg can be null if no arguments are needed.

BeginInvoke retourne un objet DispatcherOperation qui peut être utilisé pour interagir avec le délégué lorsque celui-ci se trouve dans la file d’attente des événements.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

L’objet DispatcherOperation retourné par BeginInvoke peut être utilisé de plusieurs façons pour interagir avec le délégué spécifié, par exemple :The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modification de la DispatcherPriority du délégué en attente d’exécution dans la file d’attente des événements.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Suppression du délégué de la file d’attente d’événements.Removing the delegate from the event queue.

  • En attente du retour du délégué.Waiting for the delegate to return.

  • Obtention de la valeur retournée par le délégué après son exécution.Obtaining the value that the delegate returns after it is executed.

BeginInvoke est asynchrone ; par conséquent, le contrôle retourne immédiatement à l’objet appelant une fois qu’il est appelé.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

Dans WPFWPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet.In WPFWPF, only the thread that created a DispatcherObject may access that object. Par exemple, un thread d’arrière-plan qui est lancé à partir du thread d’interface utilisateur principal ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Pour que le thread d’arrière-plan accède à la propriété de contenu du Button, le thread d’arrière-plan doit déléguer le travail au Dispatcher associé au thread d’interface utilisateur.In order for the background thread to access the content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Pour ce faire, utilisez Invoke ou BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke est synchrone et BeginInvoke est asynchrone.Invoke is synchronous and BeginInvoke is asynchronous. L’opération est ajoutée à la file d’attente des événements de la Dispatcher au niveau de la DispatcherPriorityspécifiée.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si plusieurs appels de BeginInvoke sont effectués au même DispatcherPriority, ils sont exécutés dans l’ordre dans lequel les appels ont été effectués.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Si BeginInvoke est appelé sur un Dispatcher qui a été arrêté, la propriété Status de la DispatcherOperation retournée est définie sur Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Voir aussi

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é.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

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

Paramètres

priority
DispatcherPriority

Priorité, par rapport aux autres opérations en attente dans la file d'attente des événements du Dispatcher, à laquelle la méthode spécifiée est appelée.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

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.A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.

arg
Object

Objet à passer comme argument à la méthode spécifiée.The object to pass as an argument to the specified method.

args
Object[]

Tableau d'objets à passer comme arguments à la méthode spécifiée.An array of objects to pass as arguments to the specified method.

Retours

DispatcherOperation

Objet qui est retourné immédiatement après l'appel de BeginInvoke et qui peut être utilisé pour interagir avec le délégué en attente d'exécution dans la file d'attente du Dispatcher.An object, which is returned immediately after BeginInvoke is called, that can be used to interact with the delegate as it is pending execution in the Dispatcher queue.

Attributs

Exceptions

method a la valeur null.method is null.

DispatcherPriority n'est pas une priorité valide.DispatcherPriority is not a valid priority.

Remarques

Le paramètre arg peut être null si aucun argument n’est nécessaire.The arg parameter can be null if no arguments are needed.

BeginInvoke retourne un objet DispatcherOperation qui peut être utilisé pour interagir avec le délégué lorsque celui-ci se trouve dans la file d’attente des événements.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

L’objet DispatcherOperation retourné par BeginInvoke peut être utilisé de plusieurs façons pour interagir avec le délégué spécifié, par exemple :The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Modification de la DispatcherPriority du délégué en attente d’exécution dans la file d’attente des événements.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Suppression du délégué de la file d’attente d’événements.Removing the delegate from the event queue.

  • En attente du retour du délégué.Waiting for the delegate to return.

  • Obtention de la valeur retournée par le délégué après son exécution.Obtaining the value that the delegate returns after it is executed.

BeginInvoke est asynchrone ; par conséquent, le contrôle retourne immédiatement à l’objet appelant une fois qu’il est appelé.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

Dans WPFWPF, seul le thread qui a créé un DispatcherObject peut accéder à cet objet.In WPFWPF, only the thread that created a DispatcherObject may access that object. Par exemple, un thread d’arrière-plan qui est lancé à partir du thread d’interface utilisateur principal ne peut pas mettre à jour le contenu d’un Button qui a été créé sur le thread d’interface utilisateur.For example, a background thread that is spun off from the main UI thread cannot update the contents of a Button that was created on the UI thread. Pour que le thread d’arrière-plan accède à la propriété de contenu du Button, le thread d’arrière-plan doit déléguer le travail au Dispatcher associé au thread d’interface utilisateur.In order for the background thread to access the Content property of the Button, the background thread must delegate the work to the Dispatcher associated with the UI thread. Pour ce faire, utilisez Invoke ou BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invoke est synchrone et BeginInvoke est asynchrone.Invoke is synchronous and BeginInvoke is asynchronous. L’opération est ajoutée à la file d’attente des événements de la Dispatcher au niveau de la DispatcherPriorityspécifiée.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si plusieurs appels de BeginInvoke sont effectués au même DispatcherPriority, ils sont exécutés dans l’ordre dans lequel les appels ont été effectués.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Si BeginInvoke est appelé sur un Dispatcher qui a été arrêté, la propriété Status de la DispatcherOperation retournée est définie sur Aborted.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Voir aussi

S’applique à