TplExtensions.NoThrowAwaitable 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 |
|---|---|
| NoThrowAwaitable(Task, Boolean) |
Devuelve un objeto awaitable para la tarea especificada que nunca se iniciará, incluso si se produce un error en la tarea de origen o se cancela. |
| NoThrowAwaitable(ValueTask, Boolean) |
Devuelve un objeto awaitable para la tarea especificada que nunca se iniciará, incluso si se produce un error en la tarea de origen o se cancela. |
| NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean) |
Devuelve un objeto awaitable para la tarea especificada que nunca se iniciará, incluso si se produce un error en la tarea de origen o se cancela. |
NoThrowAwaitable(Task, Boolean)
Devuelve un objeto awaitable para la tarea especificada que nunca se iniciará, incluso si se produce un error en la tarea de origen o se cancela.
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
Tarea cuya finalización debe indicar la finalización de la espera devuelta.
- captureContext
- Boolean
si se establece en true la continuación se programará en el contexto del autor de la llamada; false para ejecutar siempre la continuación en el grupo de subprocesos.
Devoluciones
Un esperable.
Se aplica a
NoThrowAwaitable(ValueTask, Boolean)
Devuelve un objeto awaitable para la tarea especificada que nunca se iniciará, incluso si se produce un error en la tarea de origen o se cancela.
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
Tarea cuya finalización debe indicar la finalización de la espera devuelta.
- captureContext
- Boolean
si se establece en true la continuación se programará en el contexto del autor de la llamada; false para ejecutar siempre la continuación en el grupo de subprocesos.
Devoluciones
Un esperable.
Se aplica a
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)
Devuelve un objeto awaitable para la tarea especificada que nunca se iniciará, incluso si se produce un error en la tarea de origen o se cancela.
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
Tipo del resultado.
Parámetros
- task
- ValueTask<TResult>
Tarea cuya finalización debe indicar la finalización de la espera devuelta.
- captureContext
- Boolean
si se establece en true la continuación se programará en el contexto del autor de la llamada; false para ejecutar siempre la continuación en el grupo de subprocesos.
Devoluciones
Un esperable.
Comentarios
El objeto awaitable devuelto por este método no proporciona acceso al resultado de un objeto completado ValueTask<TResult>correctamente. Para esperar sin iniciar y usar el valor resultante, se puede usar el siguiente patrón:
var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
var result = methodValueTask.Result;
}
else
{
var exception = methodValueTask.AsTask().Exception.InnerException;
}