Compartir a través de


JoinableTaskFactory.Run Método

Definición

Sobrecargas

Run(Func<Task>)

Ejecuta el método asincrónico especificado hasta la finalización mientras bloquea sincrónicamente el subproceso que realiza la llamada.

Run(Func<Task>, JoinableTaskCreationOptions)

Ejecuta el método asincrónico especificado hasta la finalización mientras bloquea sincrónicamente el subproceso que realiza la llamada.

Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)

Ejecuta el método asincrónico especificado hasta la finalización mientras bloquea sincrónicamente el subproceso que realiza la llamada.

Run<T>(Func<Task<T>>)

Ejecuta el método asincrónico especificado hasta la finalización mientras bloquea sincrónicamente el subproceso que realiza la llamada.

Run(Func<Task>)

Ejecuta el método asincrónico especificado hasta la finalización mientras bloquea sincrónicamente el subproceso que realiza la llamada.

public:
 void Run(Func<System::Threading::Tasks::Task ^> ^ asyncMethod);
public void Run (Func<System.Threading.Tasks.Task> asyncMethod);
member this.Run : Func<System.Threading.Tasks.Task> -> unit
Public Sub Run (asyncMethod As Func(Of Task))

Parámetros

asyncMethod
Func<Task>

Método asincrónico que se va a ejecutar.

Comentarios

Cualquier excepción producida por el delegado se vuelve a iniciar en su tipo original al autor de la llamada de este método.

Cuando el delegado se reanuda desde una espera de rendimiento, el comportamiento predeterminado es reanudarse en su contexto original como lo haría una ejecución normal del método asincrónico. Por ejemplo, si el autor de la llamada estaba en el subproceso principal, la ejecución se reanuda después de una espera en el subproceso principal; pero si se inició en un subproceso de grupo de subprocesos, se reanuda en un subproceso de grupo de subprocesos.

// On threadpool or Main thread, this method will block
// the calling thread until all async operations in the
// delegate complete.
joinableTaskFactory.Run(async delegate {
    // still on the threadpool or Main thread as before.
    await OperationAsync();
    // still on the threadpool or Main thread as before.
    await Task.Run(async delegate {
         // Now we're on a threadpool thread.
         await Task.Yield();
         // still on a threadpool thread.
    });
    // Now back on the Main thread (or threadpool thread if that's where we started).
});

Se aplica a

Run(Func<Task>, JoinableTaskCreationOptions)

Ejecuta el método asincrónico especificado hasta la finalización mientras bloquea sincrónicamente el subproceso que realiza la llamada.

public:
 void Run(Func<System::Threading::Tasks::Task ^> ^ asyncMethod, Microsoft::VisualStudio::Threading::JoinableTaskCreationOptions creationOptions);
public void Run (Func<System.Threading.Tasks.Task> asyncMethod, Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions creationOptions);
member this.Run : Func<System.Threading.Tasks.Task> * Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions -> unit
Public Sub Run (asyncMethod As Func(Of Task), creationOptions As JoinableTaskCreationOptions)

Parámetros

asyncMethod
Func<Task>

Método asincrónico que se va a ejecutar.

creationOptions
JoinableTaskCreationOptions

El objeto JoinableTaskCreationOptions que se usa para personalizar el comportamiento de la tarea.

Se aplica a

Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)

Ejecuta el método asincrónico especificado hasta la finalización mientras bloquea sincrónicamente el subproceso que realiza la llamada.

public:
generic <typename T>
 T Run(Func<System::Threading::Tasks::Task<T> ^> ^ asyncMethod, Microsoft::VisualStudio::Threading::JoinableTaskCreationOptions creationOptions);
public T Run<T> (Func<System.Threading.Tasks.Task<T>> asyncMethod, Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions creationOptions);
member this.Run : Func<System.Threading.Tasks.Task<'T>> * Microsoft.VisualStudio.Threading.JoinableTaskCreationOptions -> 'T
Public Function Run(Of T) (asyncMethod As Func(Of Task(Of T)), creationOptions As JoinableTaskCreationOptions) As T

Parámetros de tipo

T

Tipo de valor devuelto por la operación asincrónica.

Parámetros

asyncMethod
Func<Task<T>>

Método asincrónico que se va a ejecutar.

creationOptions
JoinableTaskCreationOptions

El objeto JoinableTaskCreationOptions que se usa para personalizar el comportamiento de la tarea.

Devoluciones

T

Resultado de la tarea devuelta por asyncMethod.

Comentarios

Cualquier excepción producida por el delegado se vuelve a iniciar en su tipo original al autor de la llamada de este método.

Cuando el delegado se reanuda desde una espera de rendimiento, el comportamiento predeterminado es reanudarse en su contexto original como lo haría una ejecución normal del método asincrónico. Por ejemplo, si el autor de la llamada estaba en el subproceso principal, la ejecución se reanuda después de una espera en el subproceso principal; pero si se inició en un subproceso de grupo de subprocesos, se reanuda en un subproceso de grupo de subprocesos.

// On threadpool or Main thread, this method will block
// the calling thread until all async operations in the
// delegate complete.
joinableTaskFactory.Run(async delegate {
    // still on the threadpool or Main thread as before.
    await OperationAsync();
    // still on the threadpool or Main thread as before.
    await Task.Run(async delegate {
         // Now we're on a threadpool thread.
         await Task.Yield();
         // still on a threadpool thread.
    });
    // Now back on the Main thread (or threadpool thread if that's where we started).
});

Se aplica a

Run<T>(Func<Task<T>>)

Ejecuta el método asincrónico especificado hasta la finalización mientras bloquea sincrónicamente el subproceso que realiza la llamada.

public:
generic <typename T>
 T Run(Func<System::Threading::Tasks::Task<T> ^> ^ asyncMethod);
public T Run<T> (Func<System.Threading.Tasks.Task<T>> asyncMethod);
member this.Run : Func<System.Threading.Tasks.Task<'T>> -> 'T
Public Function Run(Of T) (asyncMethod As Func(Of Task(Of T))) As T

Parámetros de tipo

T

Tipo de valor devuelto por la operación asincrónica.

Parámetros

asyncMethod
Func<Task<T>>

Método asincrónico que se va a ejecutar.

Devoluciones

T

Resultado de la tarea devuelta por asyncMethod.

Comentarios

Cualquier excepción producida por el delegado se vuelve a iniciar en su tipo original al autor de la llamada de este método.

Cuando el delegado se reanuda desde una espera de rendimiento, el comportamiento predeterminado es reanudarse en su contexto original como lo haría una ejecución normal del método asincrónico. Por ejemplo, si el autor de la llamada estaba en el subproceso principal, la ejecución se reanuda después de una espera en el subproceso principal; pero si se inició en un subproceso de grupo de subprocesos, se reanuda en un subproceso de grupo de subprocesos.

Consulte la documentación de Run(Func<Task>) sobrecarga para obtener un ejemplo.

Se aplica a