Dispatcher.BeginInvoke Dispatcher.BeginInvoke Dispatcher.BeginInvoke Dispatcher.BeginInvoke Method

Definición

Ejecuta asincrónicamente un delegado en el subproceso al que está asociado el objeto Dispatcher.Executes a delegate asynchronously on the thread the Dispatcher is associated with.

Sobrecargas

BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[])

Ejecuta de forma asincrónica el delegado especificado con los argumentos especificados en el subproceso en el que se creó el objeto Dispatcher.Executes the specified delegate asynchronously with the specified arguments on the thread that the Dispatcher was created on.

BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate)

Ejecuta asincrónicamente el delegado especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher.Executes the specified delegate asynchronously at the specified priority on the thread the Dispatcher is associated with.

BeginInvoke(Delegate, DispatcherPriority, Object[]) BeginInvoke(Delegate, DispatcherPriority, Object[]) BeginInvoke(Delegate, DispatcherPriority, Object[]) BeginInvoke(Delegate, DispatcherPriority, Object[])

Ejecuta de forma asincrónica el delegado especificado, con la prioridad indicada y los argumentos especificados, en el subproceso en el que se creó el objeto Dispatcher.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) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object)

Ejecuta asincrónicamente el delegado especificado en la prioridad indicada y con el argumento especificado en el subproceso al que está asociado el objeto Dispatcher.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[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[])

Ejecuta asincrónicamente el delegado especificado en la prioridad indicada y con la matriz de argumentos indicada en el subproceso al que está asociado el objeto Dispatcher.Executes the specified delegate asynchronously at the specified priority and with the specified array of arguments on the thread the Dispatcher is associated with.

Comentarios

En WPFWPF, solo el subproceso que ha DispatcherObject creado un puede tener acceso a ese objeto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Por ejemplo, un subproceso en segundo plano que se gira desde el subproceso de interfaz de usuario principal Button no puede actualizar el contenido de un creado en el subproceso de la interfaz de usuario.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. Para que el subproceso en segundo plano tenga acceso a la propiedad Buttonde contenido de, el subproceso en segundo plano Dispatcher debe delegar el trabajo en el asociado al subproceso de interfaz de usuario.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. Esto se logra Invoke mediante o BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invokees sincrónico y BeginInvoke es asincrónico.Invoke is synchronous and BeginInvoke is asynchronous. La operación se agrega a la cola de eventos de Dispatcher en el especificado DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

BeginInvokees asincrónico; por lo tanto, el control vuelve inmediatamente al objeto que realiza la llamada después de que se llame a.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

BeginInvokeDevuelve un DispatcherOperation objeto que se puede utilizar para interactuar con el delegado cuando el delegado está en la cola de eventos.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

El DispatcherOperation objeto devuelto BeginInvoke por se puede usar de varias maneras para interactuar con el delegado especificado, como:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Cambiar el DispatcherPriority del delegado cuando está pendiente de ejecución en la cola de eventos.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Quitar el delegado de la cola de eventos.Removing the delegate from the event queue.

  • Esperando a que el delegado devuelva.Waiting for the delegate to return.

  • Obtener el valor que devuelve el delegado después de ejecutarlo.Obtaining the value that the delegate returns after it is executed.

Si se BeginInvoke realizan varias llamadas en el mismo DispatcherPriority, se ejecutarán en el orden en que se realizaron las llamadas.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Si BeginInvoke se llama a en Dispatcher un que se ha cerrado, la propiedad status del DispatcherOperation devuelto se Abortedestablece en.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[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[]) BeginInvoke(Delegate, Object[])

Ejecuta de forma asincrónica el delegado especificado con los argumentos especificados en el subproceso en el que se creó el objeto Dispatcher.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

Parámetros

method
Delegate Delegate Delegate Delegate

Delegado de un método que toma los parámetros especificados en args, que se inserta en la cola de eventos de Dispatcher.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

args
Object[]

Matriz de objetos cuyos valores se pasan como argumentos al método especificado.An array of objects to pass as arguments to the given method. Puede ser null.Can be null.

Devoluciones

Objeto, que se devuelve inmediatamente después de llamar a BeginInvoke, que se puede usar para interactuar con el delegado ya que su ejecución está pendiente en la cola de eventos.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.

Comentarios

El DispatcherOperation objeto devuelto BeginInvoke por se puede usar de varias maneras para interactuar con el delegado especificado, como:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Cambiar el DispatcherPriority del delegado cuando está pendiente de ejecución en la cola de eventos.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Quitar el delegado de la cola de eventos.Removing the delegate from the event queue.

  • Esperando a que el delegado devuelva.Waiting for the delegate to return.

  • Obtener el valor que devuelve el delegado después de ejecutarlo.Obtaining the value that the delegate returns after it is executed.

BeginInvokees asincrónico; por lo tanto, el control vuelve inmediatamente al objeto que realiza la llamada después de que se llame a.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

En WPFWPF, solo el subproceso que ha DispatcherObject creado un puede tener acceso a ese objeto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Por ejemplo, un subproceso en segundo plano que se gira desde el subproceso de interfaz de usuario principal Button no puede actualizar el contenido de un creado en el subproceso de la interfaz de usuario.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. Para que el subproceso en segundo plano tenga acceso a la propiedad Buttonde contenido de, el subproceso en segundo plano Dispatcher debe delegar el trabajo en el asociado al subproceso de interfaz de usuario.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. Esto se logra Invoke mediante o BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invokees sincrónico y BeginInvoke es asincrónico.Invoke is synchronous and BeginInvoke is asynchronous. La operación se agrega a la cola de eventos de Dispatcher en el especificado DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si BeginInvoke se llama a en Dispatcher un que se ha cerrado, la propiedad status del DispatcherOperation devuelto se Abortedestablece en.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) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate) BeginInvoke(DispatcherPriority, Delegate)

Ejecuta asincrónicamente el delegado especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher.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

Parámetros

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Prioridad, relativa a otras operaciones pendientes de la cola de eventos de Dispatcher, con la que se invoca el método especificado.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

El delegado a un método que no toma ningún argumento, que se inserta en la cola de eventos de Dispatcher.The delegate to a method that takes no arguments, which is pushed onto the Dispatcher event queue.

Devoluciones

Objeto, que se devuelve inmediatamente después de llamar a BeginInvoke, que se puede usar para interactuar con el delegado ya que su ejecución está pendiente en la cola de eventos.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.

Excepciones

Ejemplos

En el ejemplo siguiente se muestra cómo colocar una operación en Dispatcherun.The following example shows how to place an operation onto a Dispatcher. Para obtener el código fuente completo de este ejemplo, vea aplicación de un único subproceso con un ejemplo de cálculo de ejecución prolongada.For the full source code of this example, see Single-Threaded Application with Long-Running Calculation Sample.

En primer lugar, se crea un delegado que no acepta argumentos.First, a delegate is created that accepts no arguments.

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

A continuación BeginInvoke(DispatcherPriority, Delegate) , se llama a.Next, BeginInvoke(DispatcherPriority, Delegate) is called. Dado que DispatcherObject cada tiene una propiedad que devuelve Dispatcher el objeto al que está asociada, Dispatcher el objeto deseado se obtiene consultando DispatcherObject, en este caso Button , startStopButtonun denominado.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. La llamada a BeginInvoke(DispatcherPriority, Delegate) toma dos parámetros: la prioridad, que se establece en DispatcherPriority.Normal, y la devolución de llamada, que se pasa a través de una instancia NextPrimeDelegatedel delegado.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))

Comentarios

Si se BeginInvoke realizan varias llamadas en el mismo DispatcherPriority, se ejecutarán en el orden en que se realizaron las llamadas.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

BeginInvokeDevuelve un DispatcherOperation objeto que se puede utilizar para interactuar con el delegado cuando el delegado está en la cola de eventos.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

El DispatcherOperation objeto devuelto BeginInvoke por se puede usar de varias maneras para interactuar con el delegado especificado, como:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Cambiar el DispatcherPriority del delegado cuando está pendiente de ejecución en la cola de eventos.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Quitar el delegado de la cola de eventos.Removing the delegate from the event queue.

  • Esperando a que el delegado devuelva.Waiting for the delegate to return.

  • Obtener el valor que devuelve el delegado después de ejecutarlo.Obtaining the value that the delegate returns after it is executed.

BeginInvokees asincrónico; por lo tanto, el control vuelve inmediatamente al objeto que realiza la llamada después de que se llame a.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

En WPFWPF, solo el subproceso que ha DispatcherObject creado un puede tener acceso a ese objeto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Por ejemplo, un subproceso en segundo plano que se gira desde el subproceso de interfaz de usuario principal Button no puede actualizar el contenido de un creado en el subproceso de la interfaz de usuario.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. Para que el subproceso en segundo plano tenga acceso a la propiedad Buttonde contenido de, el subproceso en segundo plano Dispatcher debe delegar el trabajo en el asociado al subproceso de interfaz de usuario.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. Esto se logra Invoke mediante o BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invokees sincrónico y BeginInvoke es asincrónico.Invoke is synchronous and BeginInvoke is asynchronous. La operación se agrega a la cola de eventos de Dispatcher en el especificado DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si BeginInvoke se llama a en Dispatcher un que se ha cerrado, la propiedad status del DispatcherOperation devuelto se Abortedestablece en.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Consulte también:

BeginInvoke(Delegate, DispatcherPriority, Object[]) BeginInvoke(Delegate, DispatcherPriority, Object[]) BeginInvoke(Delegate, DispatcherPriority, Object[]) BeginInvoke(Delegate, DispatcherPriority, Object[])

Ejecuta de forma asincrónica el delegado especificado, con la prioridad indicada y los argumentos especificados, en el subproceso en el que se creó el objeto Dispatcher.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

Parámetros

method
Delegate Delegate Delegate Delegate

Delegado de un método que toma los parámetros especificados en args, que se inserta en la cola de eventos de Dispatcher.The delegate to a method that takes parameters specified in args, which is pushed onto the Dispatcher event queue.

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Prioridad, relativa a otras operaciones pendientes de la cola de eventos de Dispatcher, con la que se invoca el método especificado.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

args
Object[]

Matriz de objetos cuyos valores se pasan como argumentos al método especificado.An array of objects to pass as arguments to the given method. Puede ser null.Can be null.

Devoluciones

Objeto, que se devuelve inmediatamente después de llamar a BeginInvoke, que se puede usar para interactuar con el delegado ya que su ejecución está pendiente en la cola de eventos.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.

Comentarios

El DispatcherOperation objeto devuelto BeginInvoke por se puede usar de varias maneras para interactuar con el delegado especificado, como:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Cambiar el DispatcherPriority del delegado cuando está pendiente de ejecución en la cola de eventos.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Quitar el delegado de la cola de eventos.Removing the delegate from the event queue.

  • Esperando a que el delegado devuelva.Waiting for the delegate to return.

  • Obtener el valor que devuelve el delegado después de ejecutarlo.Obtaining the value that the delegate returns after it is executed.

BeginInvokees asincrónico; por lo tanto, el control vuelve inmediatamente al objeto que realiza la llamada después de que se llame a.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

En WPFWPF, solo el subproceso que ha DispatcherObject creado un puede tener acceso a ese objeto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Por ejemplo, un subproceso en segundo plano que se gira desde el subproceso de interfaz de usuario principal Button no puede actualizar el contenido de un creado en el subproceso de la interfaz de usuario.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. Para que el subproceso en segundo plano tenga acceso a la propiedad Buttonde contenido de, el subproceso en segundo plano Dispatcher debe delegar el trabajo en el asociado al subproceso de interfaz de usuario.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. Esto se logra Invoke mediante o BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invokees sincrónico y BeginInvoke es asincrónico.Invoke is synchronous and BeginInvoke is asynchronous. La operación se agrega a la cola de eventos de Dispatcher en el especificado DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si BeginInvoke se llama a en Dispatcher un que se ha cerrado, la propiedad status del DispatcherOperation devuelto se Abortedestablece en.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) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object) BeginInvoke(DispatcherPriority, Delegate, Object)

Ejecuta asincrónicamente el delegado especificado en la prioridad indicada y con el argumento especificado en el subproceso al que está asociado el objeto Dispatcher.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

Parámetros

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Prioridad, relativa a otras operaciones pendientes de la cola de eventos de Dispatcher, con la que se invoca el método especificado.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

Delegado a un método que toma un argumento, que se inserta en la cola de eventos de Dispatcher.A delegate to a method that takes one argument, which is pushed onto the Dispatcher event queue.

arg
Object Object Object Object

Objeto que se va a pasar como argumento al método especificado.The object to pass as an argument to the specified method.

Devoluciones

Objeto, que se devuelve inmediatamente después de llamar a BeginInvoke, que se puede usar para interactuar con el delegado ya que su ejecución está pendiente en la cola de eventos.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.

Excepciones

Ejemplos

En el ejemplo siguiente se muestra cómo colocar una operación en Dispatcherun.The following example shows how to place an operation onto a Dispatcher.

En primer lugar, se crea un delegado que acepta un argumento, en este caso una cadena.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)

A continuación BeginInvoke(DispatcherPriority, Delegate, Object) , se llama a.Next, BeginInvoke(DispatcherPriority, Delegate, Object) is called. Dado que DispatcherObject cada tiene una propiedad que devuelve Dispatcher el objeto al que está asociada, Dispatcher el objeto deseado se obtiene consultando DispatcherObject, en este caso Grid , tomorrowsWeatherun denominado.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. La llamada a BeginInvoke(DispatcherPriority, Delegate, Object) toma tres parámetros: la prioridad, que se establece en DispatcherPriority.Normal; la devolución de llamada, que se pasa a través de una instancia OneArgDelegatedel delegado; y una weathercadena denominada, que es el argumento para la devolución de llamada.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)

Comentarios

Argpuede ser null si no se necesita ningún argumento.Arg can be null if no arguments are needed.

BeginInvokeDevuelve un DispatcherOperation objeto que se puede utilizar para interactuar con el delegado cuando el delegado está en la cola de eventos.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

El DispatcherOperation objeto devuelto BeginInvoke por se puede usar de varias maneras para interactuar con el delegado especificado, como:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Cambiar el DispatcherPriority del delegado cuando está pendiente de ejecución en la cola de eventos.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Quitar el delegado de la cola de eventos.Removing the delegate from the event queue.

  • Esperando a que el delegado devuelva.Waiting for the delegate to return.

  • Obtener el valor que devuelve el delegado después de ejecutarlo.Obtaining the value that the delegate returns after it is executed.

BeginInvokees asincrónico; por lo tanto, el control vuelve inmediatamente al objeto que realiza la llamada después de que se llame a.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

En WPFWPF, solo el subproceso que ha DispatcherObject creado un puede tener acceso a ese objeto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Por ejemplo, un subproceso en segundo plano que se gira desde el subproceso de interfaz de usuario principal Button no puede actualizar el contenido de un creado en el subproceso de la interfaz de usuario.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. Para que el subproceso en segundo plano tenga acceso a la propiedad Buttonde contenido de, el subproceso en segundo plano Dispatcher debe delegar el trabajo en el asociado al subproceso de interfaz de usuario.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. Esto se logra Invoke mediante o BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invokees sincrónico y BeginInvoke es asincrónico.Invoke is synchronous and BeginInvoke is asynchronous. La operación se agrega a la cola de eventos de Dispatcher en el especificado DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si se BeginInvoke realizan varias llamadas en el mismo DispatcherPriority, se ejecutarán en el orden en que se realizaron las llamadas.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Si BeginInvoke se llama a en Dispatcher un que se ha cerrado, la propiedad status del DispatcherOperation devuelto se Abortedestablece en.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Consulte también:

BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) BeginInvoke(DispatcherPriority, Delegate, Object, Object[])

Ejecuta asincrónicamente el delegado especificado en la prioridad indicada y con la matriz de argumentos indicada en el subproceso al que está asociado el objeto Dispatcher.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

Parámetros

priority
DispatcherPriority DispatcherPriority DispatcherPriority DispatcherPriority

Prioridad, relativa a otras operaciones pendientes de la cola de eventos de Dispatcher, con la que se invoca el método especificado.The priority, relative to the other pending operations in the Dispatcher event queue, the specified method is invoked.

method
Delegate Delegate Delegate Delegate

Delegado de un método que toma varios argumentos y se inserta en la cola de eventos de Dispatcher.A delegate to a method that takes multiple arguments, which is pushed onto the Dispatcher event queue.

arg
Object Object Object Object

Objeto que se va a pasar como argumento al método especificado.The object to pass as an argument to the specified method.

args
Object[]

Matriz de objetos cuyos valores se pasan como argumentos al método especificado.An array of objects to pass as arguments to the specified method.

Devoluciones

Objeto, que se devuelve inmediatamente después de llamar a BeginInvoke, que se puede usar para interactuar con el delegado ya que su ejecución está pendiente en la cola de 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.

Excepciones

Comentarios

El arg parámetro puede ser null si no se necesita ningún argumento.The arg parameter can be null if no arguments are needed.

BeginInvokeDevuelve un DispatcherOperation objeto que se puede utilizar para interactuar con el delegado cuando el delegado está en la cola de eventos.BeginInvoke returns a DispatcherOperation object that can be used to interact with the delegate when the delegate is in the event queue.

El DispatcherOperation objeto devuelto BeginInvoke por se puede usar de varias maneras para interactuar con el delegado especificado, como:The DispatcherOperation object returned by BeginInvoke can be used in several ways to interact with the specified delegate, such as:

  • Cambiar el DispatcherPriority del delegado cuando está pendiente de ejecución en la cola de eventos.Changing the DispatcherPriority of the delegate as it is pending execution in the event queue.

  • Quitar el delegado de la cola de eventos.Removing the delegate from the event queue.

  • Esperando a que el delegado devuelva.Waiting for the delegate to return.

  • Obtener el valor que devuelve el delegado después de ejecutarlo.Obtaining the value that the delegate returns after it is executed.

BeginInvokees asincrónico; por lo tanto, el control vuelve inmediatamente al objeto que realiza la llamada después de que se llame a.BeginInvoke is asynchronous; therefore, control returns immediately to the calling object after it is called.

En WPFWPF, solo el subproceso que ha DispatcherObject creado un puede tener acceso a ese objeto.In WPFWPF, only the thread that created a DispatcherObject may access that object. Por ejemplo, un subproceso en segundo plano que se gira desde el subproceso de interfaz de usuario principal Button no puede actualizar el contenido de un creado en el subproceso de la interfaz de usuario.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. Para que el subproceso en segundo plano tenga acceso a la propiedad Buttonde contenido de, el subproceso en segundo plano Dispatcher debe delegar el trabajo en el asociado al subproceso de interfaz de usuario.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. Esto se logra Invoke mediante o BeginInvoke.This is accomplished by using either Invoke or BeginInvoke. Invokees sincrónico y BeginInvoke es asincrónico.Invoke is synchronous and BeginInvoke is asynchronous. La operación se agrega a la cola de eventos de Dispatcher en el especificado DispatcherPriority.The operation is added to the event queue of the Dispatcher at the specified DispatcherPriority.

Si se BeginInvoke realizan varias llamadas en el mismo DispatcherPriority, se ejecutarán en el orden en que se realizaron las llamadas.If multiple BeginInvoke calls are made at the same DispatcherPriority, they will be executed in the order the calls were made.

Si BeginInvoke se llama a en Dispatcher un que se ha cerrado, la propiedad status del DispatcherOperation devuelto se Abortedestablece en.If BeginInvoke is called on a Dispatcher that has shut down, the status property of the returned DispatcherOperation is set to Aborted.

Consulte también:

Se aplica a