JoinableTaskFactory.Run Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
Run(Func<Task>) |
Executa o método assíncrono especificado para conclusão enquanto bloqueia de forma síncrona o thread de chamada. |
Run(Func<Task>, JoinableTaskCreationOptions) |
Executa o método assíncrono especificado para conclusão enquanto bloqueia de forma síncrona o thread de chamada. |
Run<T>(Func<Task<T>>, JoinableTaskCreationOptions) |
Executa o método assíncrono especificado para conclusão enquanto bloqueia de forma síncrona o thread de chamada. |
Run<T>(Func<Task<T>>) |
Executa o método assíncrono especificado para conclusão enquanto bloqueia de forma síncrona o thread de chamada. |
Run(Func<Task>)
Executa o método assíncrono especificado para conclusão enquanto bloqueia de forma síncrona o thread de chamada.
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
Comentários
Qualquer exceção gerada pelo delegado é relançada em seu tipo original para o chamador desse método.
Quando o delegado é retomado de uma espera de rendimento, o comportamento padrão é retomar em seu contexto original como uma execução de método assíncrono comum seria. Por exemplo, se o chamador estiver no thread main, a execução será retomada após uma espera no thread main; mas se ele for iniciado em um thread thread de threadpool, ele será retomado em um thread de thread de threadpool.
// 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).
});
Aplica-se a
Run(Func<Task>, JoinableTaskCreationOptions)
Executa o método assíncrono especificado para conclusão enquanto bloqueia de forma síncrona o thread de chamada.
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
- creationOptions
- JoinableTaskCreationOptions
O JoinableTaskCreationOptions usado para personalizar o comportamento da tarefa.
Aplica-se a
Run<T>(Func<Task<T>>, JoinableTaskCreationOptions)
Executa o método assíncrono especificado para conclusão enquanto bloqueia de forma síncrona o thread de chamada.
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
O tipo de valor retornado pela operação assíncrona.
Parâmetros
- creationOptions
- JoinableTaskCreationOptions
O JoinableTaskCreationOptions usado para personalizar o comportamento da tarefa.
Retornos
O resultado da Tarefa retornada por asyncMethod
.
Comentários
Qualquer exceção gerada pelo delegado é relançada em seu tipo original para o chamador desse método.
Quando o delegado é retomado de uma espera de rendimento, o comportamento padrão é retomar em seu contexto original como uma execução de método assíncrono comum seria. Por exemplo, se o chamador estiver no thread main, a execução será retomada após uma espera no thread main; mas se ele for iniciado em um thread thread de threadpool, ele será retomado em um thread de thread de threadpool.
// 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).
});
Aplica-se a
Run<T>(Func<Task<T>>)
Executa o método assíncrono especificado para conclusão enquanto bloqueia de forma síncrona o thread de chamada.
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
O tipo de valor retornado pela operação assíncrona.
Parâmetros
Retornos
O resultado da Tarefa retornada por asyncMethod
.
Comentários
Qualquer exceção gerada pelo delegado é relançada em seu tipo original para o chamador desse método.
Quando o delegado é retomado de uma espera de rendimento, o comportamento padrão é retomar em seu contexto original como uma execução de método assíncrono comum seria. Por exemplo, se o chamador estiver no thread main, a execução será retomada após uma espera no thread main; mas se ele for iniciado em um thread thread de threadpool, ele será retomado em um thread de thread de threadpool.
Consulte a Run(Func<Task>) documentação de sobrecarga para obter um exemplo.