Dispatcher.Invoke Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Ejecuta sincrónicamente el delegado especificado en el subproceso al que está asociado el objeto Dispatcher.
Sobrecargas
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[]) |
Ejecuta el delegado especificado en la prioridad indicada con los argumentos especificados sincrónicamente en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(DispatcherPriority, TimeSpan, Delegate, Object) |
Ejecuta el delegado especificado en la prioridad indicada con el argumento especificado sincrónicamente en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(DispatcherPriority, Delegate, Object, Object[]) |
Ejecuta el delegado especificado en la prioridad indicada con los argumentos especificados sincrónicamente en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan) |
Ejecuta sincrónicamente el Action especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(DispatcherPriority, TimeSpan, Delegate) |
Ejecuta sincrónicamente el delegado especificado en la prioridad indicada y con el valor de tiempo de espera especificado en el subproceso que creó Dispatcher. |
Invoke(DispatcherPriority, Delegate, Object) |
Ejecuta el delegado especificado en la prioridad indicada con el argumento especificado sincrónicamente en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[]) |
Ejecuta de forma sincrónica el delegado especificado dentro del intervalo de tiempo designado y con la prioridad y los argumentos especificados en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(Delegate, TimeSpan, Object[]) |
Ejecuta de forma sincrónica el delegado especificado dentro del intervalo de tiempo designado y con la prioridad y los argumentos especificados en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(Action, DispatcherPriority, CancellationToken) |
Ejecuta sincrónicamente el Action especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher. |
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 de forma sincrónica el delegado especificado con los argumentos especificados en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(Action, DispatcherPriority) |
Ejecuta sincrónicamente el Action especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(Action) |
Ejecuta sincrónicamente el Action especificado en el subproceso al que está asociado el objeto Dispatcher. |
Invoke(Delegate, DispatcherPriority, Object[]) |
Ejecuta el delegado especificado en la prioridad indicada con los argumentos especificados sincrónicamente en el subproceso al que está asociado el objeto Dispatcher. |
Invoke<TResult>(Func<TResult>) |
Ejecuta sincrónicamente el Func<TResult> especificado en el subproceso al que está asociado el objeto Dispatcher. |
Invoke<TResult>(Func<TResult>, DispatcherPriority) |
Ejecuta sincrónicamente el Func<TResult> especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher. |
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken) |
Ejecuta sincrónicamente el Func<TResult> especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher. |
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan) |
Ejecuta sincrónicamente el Func<TResult> especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher. |
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 tenga acceso a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de 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 que se devuelva la devolución de llamada.
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[])
Ejecuta el delegado especificado en la prioridad indicada con los argumentos especificados sincrónicamente en el subproceso al que está asociado el objeto Dispatcher.
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 demás 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 de 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 un ArgumentOutOfRangeException.
- method
- Delegate
Delegado de un método que toma varios argumentos y se inserta en la cola de eventos de Dispatcher.
- arg
- Object
Objeto que se va a pasar como un argumento al método especificado.
- args
- Object[]
Matriz de objetos cuyos valores se pasan como argumentos al método especificado.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
- Atributos
Excepciones
priority
es igual a Inactive.
priority
no es un DispatcherPriority válido.
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 es necesario un argumento.
En WPF, solo el subproceso que creó un DispatcherObject objeto puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desactive del subproceso de interfaz de usuario principal no puede actualizar el contenido de un Button objeto creado en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano tenga acceso 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 indicada con el argumento especificado sincrónicamente en el subproceso al que está asociado el objeto Dispatcher.
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 demás 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 de 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 un ArgumentOutOfRangeException.
- method
- Delegate
Delegado de un método que toma varios argumentos y se inserta en la cola de eventos de Dispatcher.
- arg
- Object
Objeto cuyos valores se pasan como argumento al método especificado. Puede ser null
si no se necesita ningún argumento.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
- 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 objeto puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desactive del subproceso de interfaz de usuario principal no puede actualizar el contenido de un Button objeto creado en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano tenga acceso 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 indicada con los argumentos especificados sincrónicamente en el subproceso al que está asociado el objeto Dispatcher.
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 demás operaciones pendientes de la Dispatcher cola de eventos, con las que se invoca el método especificado.
- method
- Delegate
Delegado de un método que toma varios argumentos y se inserta en la cola de eventos de Dispatcher.
- arg
- Object
Objeto cuyos valores se pasan como argumento al método especificado.
- args
- Object[]
Matriz de objetos cuyos valores se pasan como argumentos al método especificado.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
- 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 objeto puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desactive del subproceso de interfaz de usuario principal no puede actualizar el contenido de un Button objeto creado en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano tenga acceso 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 sincrónicamente el Action especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher.
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 demás operaciones pendientes en .Dispatcher
- cancellationToken
- CancellationToken
Un objeto que indica si 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 de 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 un ArgumentOutOfRangeException.
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 sincrónicamente el delegado especificado en la prioridad indicada y con el valor de tiempo de espera especificado en el subproceso que creó Dispatcher.
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 demás 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 de 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 un ArgumentOutOfRangeException.
- method
- Delegate
El delegado a un método que no toma ningún argumento, que se inserta en la cola de eventos de Dispatcher.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
- 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 objeto puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desactive del subproceso de interfaz de usuario principal no puede actualizar el contenido de un Button objeto creado en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano tenga acceso 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 indicada con el argumento especificado sincrónicamente en el subproceso al que está asociado el objeto Dispatcher.
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 demás 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 eventos de Dispatcher.
- arg
- Object
Objeto cuyos valores se pasan como argumento al método especificado.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
- 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 objeto puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desactive del subproceso de interfaz de usuario principal no puede actualizar el contenido de un Button objeto creado en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano tenga acceso 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 de forma sincrónica el delegado especificado dentro del intervalo de tiempo designado y con la prioridad y los argumentos especificados en el subproceso al que está asociado el objeto Dispatcher.
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 de un método que toma los parámetros especificados en args
, que se inserta en la cola de eventos de Dispatcher.
- 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 de 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 un ArgumentOutOfRangeException.
- priority
- DispatcherPriority
Prioridad, relativa a las demás operaciones pendientes de la Dispatcher cola de eventos, con las que se invoca el método especificado.
- args
- Object[]
Matriz de objetos cuyos valores se pasan como argumentos al método especificado. Puede ser null
.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
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 objeto puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desactive del subproceso de interfaz de usuario principal no puede actualizar el contenido de un Button objeto creado en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano tenga acceso 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 de forma sincrónica el delegado especificado dentro del intervalo de tiempo designado y con la prioridad y los argumentos especificados en el subproceso al que está asociado el objeto Dispatcher.
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 de un método que toma los parámetros especificados en args
, que se inserta en la cola de eventos de Dispatcher.
- 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 de 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 un ArgumentOutOfRangeException.
- args
- Object[]
Matriz de objetos cuyos valores se pasan como argumentos al método especificado. Puede ser null
si no se necesitan argumentos.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
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 objeto puede tener acceso a ese objeto. Por ejemplo, un subproceso en segundo plano que se desactive del subproceso de interfaz de usuario principal no puede actualizar el contenido de un Button objeto creado en el subproceso de la interfaz de usuario. Para que el subproceso en segundo plano tenga acceso 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 de llamada hasta después de que se devuelva la devolución de llamada.
Se aplica a
Invoke(Action, DispatcherPriority, CancellationToken)
Ejecuta sincrónicamente el Action especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher.
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 para 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 demás operaciones pendientes en .Dispatcher
- cancellationToken
- CancellationToken
Un objeto que indica si 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 demás operaciones pendientes en la cola de Dispatcher eventos.
- method
- Delegate
Un delegado a un método que no toma ningún argumento, que se inserta en la cola de eventos de Dispatcher.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
- 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 en Dispatcher mediante NormalInvoke.
// 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 tenga acceso a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de 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 que se devuelva la devolución de llamada.
Se aplica a
Invoke(Delegate, Object[])
Ejecuta de forma sincrónica el delegado especificado con los argumentos especificados en el subproceso al que está asociado el objeto Dispatcher.
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 de un método que toma los parámetros especificados en args
, que se inserta en la cola de eventos de Dispatcher.
- args
- Object[]
Matriz de objetos cuyos valores se pasan como argumentos al método especificado. Puede ser null
.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
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 tenga acceso a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de 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 que se devuelva la devolución de llamada.
Se aplica a
Invoke(Action, DispatcherPriority)
Ejecuta sincrónicamente el Action especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher.
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 para 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 demás operaciones pendientes en .Dispatcher
Se aplica a
Invoke(Action)
Ejecuta sincrónicamente el Action especificado en el subproceso al que está asociado el objeto Dispatcher.
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 para 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 indicada con los argumentos especificados sincrónicamente en el subproceso al que está asociado el objeto Dispatcher.
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 de un método que toma los parámetros especificados en args
, que se inserta en la cola de eventos de Dispatcher.
- priority
- DispatcherPriority
Prioridad con la que se invoca el método especificado, en relación con las demás operaciones pendientes en la cola de Dispatcher eventos.
- args
- Object[]
Matriz de objetos cuyos valores se pasan como argumentos al método especificado. Puede ser null
.
Devoluciones
Es el valor devuelto desde el delegado al que se invoca o es null
si el delegado no devuelve ningún valor.
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 tenga acceso a la propiedad Content de Button, el subproceso en segundo plano debe delegar el trabajo en el Dispatcher asociado al subproceso de 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 que se devuelva la devolución de llamada.
Se aplica a
Invoke<TResult>(Func<TResult>)
Ejecuta sincrónicamente el Func<TResult> especificado en el subproceso al que está asociado el objeto Dispatcher.
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 del valor devuelto del delegado especificado.
Parámetros
- callback
- Func<TResult>
Delegado para invocar a través del distribuidor.
Devoluciones
El valor devuelto por callback
.
Se aplica a
Invoke<TResult>(Func<TResult>, DispatcherPriority)
Ejecuta sincrónicamente el Func<TResult> especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher.
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 del valor devuelto del delegado especificado.
Parámetros
- callback
- Func<TResult>
Delegado para 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 demás operaciones pendientes en .Dispatcher
Devoluciones
El valor devuelto por callback
.
Se aplica a
Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)
Ejecuta sincrónicamente el Func<TResult> especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher.
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 del valor devuelto del delegado especificado.
Parámetros
- callback
- Func<TResult>
Delegado para 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 demás operaciones pendientes en .Dispatcher
- cancellationToken
- CancellationToken
Un objeto que indica si cancelar la operación.
Devoluciones
El 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 sincrónicamente el Func<TResult> especificado en la prioridad indicada en el subproceso al que está asociado el objeto Dispatcher.
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 del valor devuelto del delegado especificado.
Parámetros
- callback
- Func<TResult>
Delegado para 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 demás operaciones pendientes en .Dispatcher
- cancellationToken
- CancellationToken
Un objeto que indica si 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
El 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.