Dispatcher.Invoke Método

Definición

Ejecuta el delegado especificado de forma sincrónica en el subproceso al que Dispatcher está asociado.

Sobrecargas

Nombre Description
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Ejecuta el delegado especificado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Ejecuta el delegado especificado en la prioridad especificada con el argumento especificado de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Ejecuta el delegado especificado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Ejecuta el especificado Action de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

Invoke(DispatcherPriority, TimeSpan, Delegate)

Ejecuta el delegado especificado de forma sincrónica en la prioridad especificada y con el valor de tiempo de espera especificado en el subproceso que Dispatcher se creó.

Invoke(DispatcherPriority, Delegate, Object)

Ejecuta el delegado especificado en la prioridad especificada con el argumento especificado de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Ejecuta el delegado especificado dentro del intervalo de tiempo designado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke(Delegate, TimeSpan, Object[])

Ejecuta el delegado especificado dentro del intervalo de tiempo designado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke(Action, DispatcherPriority, CancellationToken)

Ejecuta el especificado Action de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

Invoke(DispatcherPriority, Delegate)

Ejecuta el delegado especificado de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado .

Invoke(Delegate, Object[])

Ejecuta el delegado especificado con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke(Action, DispatcherPriority)

Ejecuta el especificado Action de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

Invoke(Action)

Ejecuta el objeto especificado Action de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke(Delegate, DispatcherPriority, Object[])

Ejecuta el delegado especificado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke<TResult>(Func<TResult>)

Ejecuta el objeto especificado Func<TResult> de forma sincrónica en el subproceso al que Dispatcher está asociado.

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Ejecuta el especificado Func<TResult> de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

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

Ejecuta el especificado Func<TResult> de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Ejecuta el especificado Func<TResult> de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

Ejemplos

En el ejemplo siguiente se coloca un delegado en un Dispatcher en Normal mediante 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

Comentarios

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])

Ejecuta el delegado especificado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

priority
DispatcherPriority

Prioridad, relativa a las otras operaciones pendientes de la Dispatcher cola de eventos, con las que se invoca el método especificado.

timeout
TimeSpan

Cantidad máxima de tiempo que se va a esperar a que se inicie la operación. Una vez iniciada la operación, se completará antes de que este método devuelva. Para especificar una espera infinita, use un valor de -1. En una llamada al mismo subproceso, cualquier otro valor negativo se convierte en -1, lo que da lugar a una espera infinita. En una llamada entre subprocesos, cualquier otro valor negativo produce una ArgumentOutOfRangeExceptionexcepción .

method
Delegate

Delegado a un método que toma varios argumentos, que se insertan en la cola de Dispatcher eventos.

arg
Object

Objeto que se va a pasar como argumento al método especificado.

args
Object[]

Matriz de objetos que se van a pasar como argumentos al método especificado.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Atributos

Excepciones

priority es igual a Inactive.

priority no es un valor válido DispatcherPriority.

method es null.

timeout es un número negativo distinto de -1 y este método se invocó entre subprocesos.

Comentarios

arg puede ser null si no se necesita un argumento.

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke(DispatcherPriority, TimeSpan, Delegate, Object)

Ejecuta el delegado especificado en la prioridad especificada con el argumento especificado de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

priority
DispatcherPriority

Prioridad, relativa a las otras operaciones pendientes de la Dispatcher cola de eventos, con las que se invoca el método especificado.

timeout
TimeSpan

Cantidad máxima de tiempo que se va a esperar a que se inicie la operación. Una vez iniciada la operación, se completará antes de que este método devuelva. Para especificar una espera infinita, use un valor de -1. En una llamada al mismo subproceso, cualquier otro valor negativo se convierte en -1, lo que da lugar a una espera infinita. En una llamada entre subprocesos, cualquier otro valor negativo produce una ArgumentOutOfRangeExceptionexcepción .

method
Delegate

Delegado a un método que toma varios argumentos, que se insertan en la cola de Dispatcher eventos.

arg
Object

Objeto que se va a pasar como argumento al método especificado. Esto puede ser null si no se necesita ningún argumento.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Atributos

Excepciones

priority es igual a Inactive.

priority no es una prioridad válida.

method es null.

Comentarios

arg puede ser null si no se necesita un argumento

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

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

Ejecuta el delegado especificado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

priority
DispatcherPriority

Prioridad, relativa a las otras operaciones pendientes de la Dispatcher cola de eventos, con las que se invoca el método especificado.

method
Delegate

Delegado a un método que toma varios argumentos, que se insertan en la cola de Dispatcher eventos.

arg
Object

Objeto que se va a pasar como argumento al método especificado.

args
Object[]

Matriz de objetos que se van a pasar como argumentos al método especificado.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Atributos

Excepciones

priority es igual a Inactive.

priority no es una prioridad válida.

method es null.

Comentarios

arg puede ser null si no se necesita un argumento

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Ejecuta el especificado Action de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

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)

Parámetros

callback
Action

Delegado de acción que se va a invocar a través del distribuidor.

priority
DispatcherPriority

Prioridad que determina el orden en el que se invoca la devolución de llamada especificada en relación con las otras operaciones pendientes en .Dispatcher

cancellationToken
CancellationToken

Objeto que indica si se debe cancelar la acción.

timeout
TimeSpan

Cantidad máxima de tiempo que se va a esperar a que se inicie la operación. Una vez iniciada la operación, se completará antes de que este método devuelva. Para especificar una espera infinita, use un valor de -1. En una llamada al mismo subproceso, cualquier otro valor negativo se convierte en -1, lo que da lugar a una espera infinita. En una llamada entre subprocesos, cualquier otro valor negativo produce una ArgumentOutOfRangeExceptionexcepción .

Excepciones

callback es null.

timeout es un número negativo distinto de -1 y este método se invocó entre subprocesos.

priority no es una prioridad válida.

Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.

Se aplica a

Invoke(DispatcherPriority, TimeSpan, Delegate)

Ejecuta el delegado especificado de forma sincrónica en la prioridad especificada y con el valor de tiempo de espera especificado en el subproceso que Dispatcher se creó.

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

Parámetros

priority
DispatcherPriority

Prioridad, relativa a las otras operaciones pendientes de la Dispatcher cola de eventos, con las que se invoca el método especificado.

timeout
TimeSpan

Cantidad máxima de tiempo que se va a esperar a que se inicie la operación. Una vez iniciada la operación, se completará antes de que este método devuelva. Para especificar una espera infinita, use un valor de -1. En una llamada al mismo subproceso, cualquier otro valor negativo se convierte en -1, lo que da lugar a una espera infinita. En una llamada entre subprocesos, cualquier otro valor negativo produce una ArgumentOutOfRangeExceptionexcepción .

method
Delegate

Delegado a un método que no toma ningún argumento, que se inserta en la cola de Dispatcher eventos.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Atributos

Excepciones

method es null.

timeout es un número negativo distinto de -1 y este método se invocó entre subprocesos.

priority es igual a Inactive.

priority no es una prioridad válida.

Comentarios

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke(DispatcherPriority, Delegate, Object)

Ejecuta el delegado especificado en la prioridad especificada con el argumento especificado de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

priority
DispatcherPriority

Prioridad, relativa a las otras operaciones pendientes de la Dispatcher cola de eventos, con las que se invoca el método especificado.

method
Delegate

Delegado a un método que toma un argumento, que se inserta en la cola de Dispatcher eventos.

arg
Object

Objeto que se va a pasar como argumento al método especificado.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Atributos

Excepciones

priority es igual a Inactive.

priority no es una prioridad válida.

method es null.

Comentarios

arg puede ser null si no se necesita un argumento

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke(Delegate, TimeSpan, DispatcherPriority, Object[])

Ejecuta el delegado especificado dentro del intervalo de tiempo designado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

method
Delegate

Delegado a un método que toma los parámetros especificados en args, que se insertan en la cola de Dispatcher eventos.

timeout
TimeSpan

Cantidad máxima de tiempo que se va a esperar a que se inicie la operación. Una vez iniciada la operación, se completará antes de que este método devuelva. Para especificar una espera infinita, use un valor de -1. En una llamada al mismo subproceso, cualquier otro valor negativo se convierte en -1, lo que da lugar a una espera infinita. En una llamada entre subprocesos, cualquier otro valor negativo produce una ArgumentOutOfRangeExceptionexcepción .

priority
DispatcherPriority

Prioridad, relativa a las otras operaciones pendientes de la Dispatcher cola de eventos, con las que se invoca el método especificado.

args
Object[]

Matriz de objetos que se van a pasar como argumentos al método especificado. Puede ser null.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Excepciones

method es null.

timeout es un número negativo distinto de -1 y este método se invocó entre subprocesos.

priority es igual a Inactive.

priority no es una prioridad válida.

Comentarios

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke(Delegate, TimeSpan, Object[])

Ejecuta el delegado especificado dentro del intervalo de tiempo designado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

method
Delegate

Delegado a un método que toma los parámetros especificados en args, que se insertan en la cola de Dispatcher eventos.

timeout
TimeSpan

Cantidad máxima de tiempo que se va a esperar a que se inicie la operación. Sin embargo, una vez iniciada la operación, se completará antes de que este método devuelva. Para especificar una espera infinita, use un valor de -1. En una llamada al mismo subproceso, cualquier otro valor negativo se convierte en -1, lo que da lugar a una espera infinita. En una llamada entre subprocesos, cualquier otro valor negativo produce una ArgumentOutOfRangeExceptionexcepción .

args
Object[]

Matriz de objetos que se van a pasar como argumentos al método especificado. Puede ser null si no se necesita ningún argumento.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Excepciones

method es null.

timeout es un número negativo distinto de -1 y se invoca entre subprocesos.

Comentarios

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke(Action, DispatcherPriority, CancellationToken)

Ejecuta el especificado Action de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

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)

Parámetros

callback
Action

Delegado que se va a invocar a través del distribuidor.

priority
DispatcherPriority

Prioridad que determina el orden en el que se invoca la devolución de llamada especificada en relación con las otras operaciones pendientes en .Dispatcher

cancellationToken
CancellationToken

Objeto que indica si se debe cancelar la acción.

Excepciones

Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.

Se aplica a

Invoke(DispatcherPriority, Delegate)

Ejecuta el delegado especificado de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado .

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

Parámetros

priority
DispatcherPriority

Prioridad con la que se invoca el método especificado, en relación con las otras operaciones pendientes en la cola de Dispatcher eventos.

method
Delegate

Delegado a un método que no toma ningún argumento, que se inserta en la cola de Dispatcher eventos.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Atributos

Excepciones

priority es igual a Inactive.

priority no es una prioridad válida.

method es null.

Ejemplos

En el ejemplo siguiente se coloca un delegado en un Dispatcher en Normal mediante 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

Comentarios

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke(Delegate, Object[])

Ejecuta el delegado especificado con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

method
Delegate

Delegado a un método que toma los parámetros especificados en args, que se insertan en la cola de Dispatcher eventos.

args
Object[]

Matriz de objetos que se van a pasar como argumentos al método especificado. Puede ser null.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Comentarios

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke(Action, DispatcherPriority)

Ejecuta el especificado Action de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

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)

Parámetros

callback
Action

Delegado que se va a invocar a través del distribuidor.

priority
DispatcherPriority

Prioridad que determina el orden en el que se invoca la devolución de llamada especificada en relación con las otras operaciones pendientes en .Dispatcher

Se aplica a

Invoke(Action)

Ejecuta el objeto especificado Action de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

callback
Action

Delegado que se va a invocar a través del distribuidor.

Comentarios

La prioridad predeterminada es DispatcherPriority.Send.

Se aplica a

Invoke(Delegate, DispatcherPriority, Object[])

Ejecuta el delegado especificado en la prioridad especificada con los argumentos especificados de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros

method
Delegate

Delegado a un método que toma los parámetros especificados en args, que se insertan en la cola de Dispatcher eventos.

priority
DispatcherPriority

Prioridad con la que se invoca el método especificado, en relación con las otras operaciones pendientes en la cola de Dispatcher eventos.

args
Object[]

Matriz de objetos que se van a pasar como argumentos al método especificado. Puede ser null.

Devoluciones

Valor devuelto del delegado que se invoca o null si el delegado no tiene ningún valor devuelto.

Comentarios

En WPF, solo el subproceso que creó un DispatcherObject puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desconecta del subproceso principal de la interfaz de usuario no puede actualizar el contenido de un Button que se creó en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano acceda a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de la interfaz de usuario. Esto se logra mediante Invoke o BeginInvoke. Invoke es sincrónico y BeginInvoke es asincrónico. La operación se agrega a la cola de eventos de en Dispatcher el especificado DispatcherPriority.

Invoke es una operación sincrónica; por lo tanto, el control no volverá al objeto que realiza la llamada hasta después de que se devuelva la devolución de llamada.

Se aplica a

Invoke<TResult>(Func<TResult>)

Ejecuta el objeto especificado Func<TResult> de forma sincrónica en el subproceso al que Dispatcher está asociado.

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

Parámetros de tipo

TResult

Tipo de valor devuelto del delegado especificado.

Parámetros

callback
Func<TResult>

Delegado que se va a invocar a través del distribuidor.

Devoluciones

TResult

Valor devuelto por callback.

Se aplica a

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Ejecuta el especificado Func<TResult> de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

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

Parámetros de tipo

TResult

Tipo de valor devuelto del delegado especificado.

Parámetros

callback
Func<TResult>

Delegado que se va a invocar a través del distribuidor.

priority
DispatcherPriority

Prioridad que determina el orden en el que se invoca la devolución de llamada especificada en relación con las otras operaciones pendientes en .Dispatcher

Devoluciones

TResult

Valor devuelto por callback.

Se aplica a

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

Ejecuta el especificado Func<TResult> de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

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

Parámetros de tipo

TResult

Tipo de valor devuelto del delegado especificado.

Parámetros

callback
Func<TResult>

Delegado que se va a invocar a través del distribuidor.

priority
DispatcherPriority

Prioridad que determina el orden en el que se invoca la devolución de llamada especificada en relación con las otras operaciones pendientes en .Dispatcher

cancellationToken
CancellationToken

Objeto que indica si se debe cancelar la operación.

Devoluciones

TResult

Valor devuelto por callback.

Excepciones

Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.

Se aplica a

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Ejecuta el especificado Func<TResult> de forma sincrónica en la prioridad especificada en el subproceso al que Dispatcher está asociado.

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

Parámetros de tipo

TResult

Tipo de valor devuelto del delegado especificado.

Parámetros

callback
Func<TResult>

Delegado que se va a invocar a través del distribuidor.

priority
DispatcherPriority

Prioridad que determina el orden en el que se invoca la devolución de llamada especificada en relación con las otras operaciones pendientes en .Dispatcher

cancellationToken
CancellationToken

Objeto que indica si se debe cancelar la operación.

timeout
TimeSpan

Cantidad máxima de tiempo que se va a esperar a que se inicie la operación. Una vez iniciada la operación, se completará antes de que este método devuelva. Para especificar una espera infinita, use un valor de -1. En una llamada al mismo subproceso, cualquier otro valor negativo se convierte en -1, lo que da lugar a una espera infinita. En una llamada entre subprocesos, cualquier otro valor negativo produce una ArgumentOutOfRangeExceptionexcepción .

Devoluciones

TResult

Valor devuelto por callback.

Excepciones

callback es null.

timeout es un número negativo distinto de -1 y el método se invocó entre subprocesos.

priority no es una prioridad válida.

Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.

Se aplica a