Control.InvokeAsync 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í.
Sobrecargas
| Nombre | Description |
|---|---|
| InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) |
Ejecuta la devolución de llamada asincrónica especificada en el subproceso que posee el identificador del control de forma asincrónica. |
| InvokeAsync(Action, CancellationToken) |
Invoca la devolución de llamada sincrónica especificada de forma asincrónica en el subproceso que posee el identificador del control. |
| InvokeAsync<T>(Func<T>, CancellationToken) |
Invoca la devolución de llamada sincrónica especificada de forma asincrónica en el subproceso que posee el identificador del control. |
| InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken) |
Ejecuta la devolución de llamada asincrónica especificada en el subproceso que posee el identificador del control. |
InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)
- Source:
- Control.cs
- Source:
- Control.cs
- Source:
- Control.cs
Ejecuta la devolución de llamada asincrónica especificada en el subproceso que posee el identificador del control de forma asincrónica.
public System.Threading.Tasks.Task InvokeAsync(Func<System.Threading.CancellationToken,System.Threading.Tasks.ValueTask> callback, System.Threading.CancellationToken cancellationToken = default);
member this.InvokeAsync : Func<System.Threading.CancellationToken, System.Threading.Tasks.ValueTask> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function InvokeAsync (callback As Func(Of CancellationToken, ValueTask), Optional cancellationToken As CancellationToken = Nothing) As Task
Parámetros
- callback
- Func<CancellationToken,ValueTask>
La función asincrónica que se va a ejecutar, que toma y CancellationToken devuelve .ValueTask
- cancellationToken
- CancellationToken
Token de cancelación.
Devoluciones
Tarea que representa la operación de invocación asincrónica.
Excepciones
El identificador del control aún no se ha creado.
Comentarios
La devolución de llamada se serializará en el subproceso que posee el identificador del control y, a continuación, se esperará. Las excepciones se propagarán de nuevo al autor de la llamada. Tenga en cuenta también que la tarea devuelta no es la tarea asociada a la devolución de llamada, sino una tarea que representa la operación de serializar la devolución de llamada en el subproceso de la interfaz de usuario. Si necesita pasar una devolución de llamada que devuelva un elemento Task en lugar de un ValueTask, use el ValueTask(Task)constructor de para crear un nuevo ValueTask objeto que encapsula la tarea original. Ambos CancellationToken se tendrán en cuenta al serializar la devolución de llamada al subproceso que posee el identificador del control y al ejecutar la devolución de llamada.
Si desea ejecutar de forma asincrónica una devolución de llamada sincrónica, use la sobrecarga InvokeAsync<T>(Func<T>, CancellationToken) o la sobrecarga InvokeAsync(Action, CancellationToken).
Se aplica a
InvokeAsync(Action, CancellationToken)
- Source:
- Control.cs
- Source:
- Control.cs
- Source:
- Control.cs
Invoca la devolución de llamada sincrónica especificada de forma asincrónica en el subproceso que posee el identificador del control.
public System.Threading.Tasks.Task InvokeAsync(Action callback, System.Threading.CancellationToken cancellationToken = default);
member this.InvokeAsync : Action * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function InvokeAsync (callback As Action, Optional cancellationToken As CancellationToken = Nothing) As Task
Parámetros
- callback
- Action
Acción sincrónica que se va a ejecutar.
- cancellationToken
- CancellationToken
Token de cancelación.
Devoluciones
Tarea que representa la operación de invocación asincrónica.
Comentarios
Cuando se pasa un CancellationToken elemento a este método, el método devolverá, pero la devolución de llamada se seguirá ejecutando. La devolución de llamada se ejecutará en el subproceso de la interfaz de usuario y también bloqueará el subproceso de la interfaz de usuario.
InvokeAsync en este caso simplemente pone en cola la devolución de llamada al final de la cola de mensajes y devuelve inmediatamente, pero en cuanto se ejecuta la devolución de llamada, seguirá bloqueando el subproceso de la interfaz de usuario durante el tiempo en que se está ejecutando. Por este motivo, se recomienda ejecutar solo operaciones de ejecución de sincronización corta en la devolución de llamada, como actualizar la propiedad de un control o similar.
Si desea ejecutar una operación de ejecución prolongada, considere la posibilidad de usar devoluciones de llamada asincrónicas en su lugar, asegurándose de usar la sobrecarga InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) o InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken).
Se aplica a
InvokeAsync<T>(Func<T>, CancellationToken)
- Source:
- Control.cs
- Source:
- Control.cs
- Source:
- Control.cs
Invoca la devolución de llamada sincrónica especificada de forma asincrónica en el subproceso que posee el identificador del control.
public System.Threading.Tasks.Task<T> InvokeAsync<T>(Func<T> callback, System.Threading.CancellationToken cancellationToken = default);
member this.InvokeAsync : Func<'T> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
Public Function InvokeAsync(Of T) (callback As Func(Of T), Optional cancellationToken As CancellationToken = Nothing) As Task(Of T)
Parámetros de tipo
- T
Tipo de valor devuelto de la devolución de llamada sincrónica.
Parámetros
- callback
- Func<T>
Función sincrónica que se va a ejecutar.
- cancellationToken
- CancellationToken
Token de cancelación.
Devoluciones
Tarea que representa la operación y que contiene el resultado de la función.
Comentarios
Cuando se pasa un CancellationToken elemento a este método, el método devolverá, pero la devolución de llamada se seguirá ejecutando. La devolución de llamada se ejecutará en el subproceso de la interfaz de usuario y también bloqueará el subproceso de la interfaz de usuario. InvokeAsync en este caso simplemente pone en cola la devolución de llamada al final de la cola de mensajes y devuelve inmediatamente, pero en cuanto se ejecuta la devolución de llamada, seguirá bloqueando la interfaz de usuario mientras se ejecuta. Por este motivo, se recomienda ejecutar solo operaciones de ejecución de sincronización corta en la devolución de llamada, como actualizar la propiedad de un control o similar.
Si desea ejecutar una operación de ejecución prolongada, considere la posibilidad de usar devoluciones de llamada asincrónicas en su lugar, que se usan con las sobrecargas de InvokeAsync que se describen a continuación.
Importante: Tenga en cuenta también que si usa esta sobrecarga para pasar una devolución de llamada que devuelve que Task esta tarea NO se esperará, sino que se devolverá inmediatamente y tiene las características de un "engage-and-forget". Si desea que se espere la tarea que pase, asegúrese de usar la sobrecarga InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) o InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken).
Se aplica a
InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken)
- Source:
- Control.cs
- Source:
- Control.cs
- Source:
- Control.cs
Ejecuta la devolución de llamada asincrónica especificada en el subproceso que posee el identificador del control.
public System.Threading.Tasks.Task<T> InvokeAsync<T>(Func<System.Threading.CancellationToken,System.Threading.Tasks.ValueTask<T>> callback, System.Threading.CancellationToken cancellationToken = default);
member this.InvokeAsync : Func<System.Threading.CancellationToken, System.Threading.Tasks.ValueTask<'T>> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
Public Function InvokeAsync(Of T) (callback As Func(Of CancellationToken, ValueTask(Of T)), Optional cancellationToken As CancellationToken = Nothing) As Task(Of T)
Parámetros de tipo
- T
Tipo de valor devuelto de la devolución de llamada asincrónica.
Parámetros
- callback
- Func<CancellationToken,ValueTask<T>>
La función asincrónica que se va a ejecutar, que toma y CancellationToken devuelve .ValueTask<TResult>
- cancellationToken
- CancellationToken
Token de cancelación.
Devoluciones
Tarea que representa la operación y que contiene el resultado de la función de tipo T.
Excepciones
El identificador del control aún no se ha creado.
Comentarios
La devolución de llamada se serializará en el subproceso que posee el identificador del control y, a continuación, se esperará. Las excepciones se propagarán de nuevo al autor de la llamada. Tenga en cuenta también que la tarea devuelta no es la tarea asociada a la devolución de llamada, sino una tarea que representa la operación de serializar la devolución de llamada en el subproceso de la interfaz de usuario. Si necesita pasar una devolución de llamada que devuelva un elemento Task<TResult> en lugar de un ValueTask<TResult>, use el ValueTask<TResult>(Task<TResult>)constructor de para crear un nuevo ValueTask<TResult> objeto que encapsula la tarea original. Ambos CancellationToken se tendrán en cuenta al serializar la devolución de llamada al subproceso que posee el identificador del control y al ejecutar la devolución de llamada.
Si desea ejecutar de forma asincrónica una devolución de llamada sincrónica, use la sobrecarga InvokeAsync<T>(Func<T>, CancellationToken) o la sobrecarga InvokeAsync(Action, CancellationToken).