TplExtensions.NoThrowAwaitable 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
NoThrowAwaitable(Task, Boolean) |
Retorna um awaitable para a tarefa especificada que nunca será lançada, mesmo se a tarefa de origem falhar ou for cancelada. |
NoThrowAwaitable(ValueTask, Boolean) |
Retorna um awaitable para a tarefa especificada que nunca será lançada, mesmo se a tarefa de origem falhar ou for cancelada. |
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean) |
Retorna um awaitable para a tarefa especificada que nunca será lançada, mesmo se a tarefa de origem falhar ou for cancelada. |
NoThrowAwaitable(Task, Boolean)
Retorna um awaitable para a tarefa especificada que nunca será lançada, mesmo se a tarefa de origem falhar ou for cancelada.
public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowTaskAwaitable NoThrowAwaitable (this System.Threading.Tasks.Task task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.Task * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowTaskAwaitable
<Extension()>
Public Function NoThrowAwaitable (task As Task, Optional captureContext As Boolean = true) As TplExtensions.NoThrowTaskAwaitable
Parâmetros
- task
- Task
A tarefa cuja conclusão deve sinalizar a conclusão do aguardado retornado.
- captureContext
- Boolean
se definido como true
a continuação será agendado no contexto do chamador; false
para sempre executar a continuação no threadpool.
Retornos
Um aguardado.
Aplica-se a
NoThrowAwaitable(ValueTask, Boolean)
Retorna um awaitable para a tarefa especificada que nunca será lançada, mesmo se a tarefa de origem falhar ou for cancelada.
public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable NoThrowAwaitable (this System.Threading.Tasks.ValueTask task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.ValueTask * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable
<Extension()>
Public Function NoThrowAwaitable (task As ValueTask, Optional captureContext As Boolean = true) As TplExtensions.NoThrowValueTaskAwaitable
Parâmetros
- task
- ValueTask
A tarefa cuja conclusão deve sinalizar a conclusão do aguardado retornado.
- captureContext
- Boolean
se definido como true
a continuação será agendado no contexto do chamador; false
para sempre executar a continuação no threadpool.
Retornos
Um aguardado.
Aplica-se a
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)
Retorna um awaitable para a tarefa especificada que nunca será lançada, mesmo se a tarefa de origem falhar ou for cancelada.
public static Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable<TResult> NoThrowAwaitable<TResult> (this System.Threading.Tasks.ValueTask<TResult> task, bool captureContext = true);
static member NoThrowAwaitable : System.Threading.Tasks.ValueTask<'Result> * bool -> Microsoft.VisualStudio.Threading.TplExtensions.NoThrowValueTaskAwaitable<'Result>
<Extension()>
Public Function NoThrowAwaitable(Of TResult) (task As ValueTask(Of TResult), Optional captureContext As Boolean = true) As TplExtensions.NoThrowValueTaskAwaitable(Of TResult)
Parâmetros de tipo
- TResult
O tipo do resultado.
Parâmetros
- task
- ValueTask<TResult>
A tarefa cuja conclusão deve sinalizar a conclusão do aguardado retornado.
- captureContext
- Boolean
se definido como true
a continuação será agendado no contexto do chamador; false
para sempre executar a continuação no threadpool.
Retornos
Um aguardado.
Comentários
O awaitable retornado por esse método não fornece acesso ao resultado de um concluído com êxito ValueTask<TResult>. Para aguardar sem gerar e usar o valor resultante, o seguinte padrão pode ser usado:
var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
var result = methodValueTask.Result;
}
else
{
var exception = methodValueTask.AsTask().Exception.InnerException;
}