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
NoThrowAwaitable(Task, Boolean) |
Devuelve un awaitable para la tarea especificada que nunca se iniciará, aunque la tarea de origen produzca errores o se cancele. |
NoThrowAwaitable(ValueTask, Boolean) |
Devuelve un awaitable para la tarea especificada que nunca se iniciará, aunque la tarea de origen produzca errores o se cancele. |
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean) |
Devuelve un awaitable para la tarea especificada que nunca se iniciará, aunque la tarea de origen produzca errores o se cancele. |
NoThrowAwaitable(Task, Boolean)
Devuelve un awaitable para la tarea especificada que nunca se iniciará, aunque la tarea de origen produzca errores o se cancele.
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 true
en 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 esperado.
Se aplica a
NoThrowAwaitable(ValueTask, Boolean)
Devuelve un awaitable para la tarea especificada que nunca se iniciará, aunque la tarea de origen produzca errores o se cancele.
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 true
en 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 esperado.
Se aplica a
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)
Devuelve un awaitable para la tarea especificada que nunca se iniciará, aunque la tarea de origen produzca errores o se cancele.
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 true
en 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 esperado.
Comentarios
El objeto awaitable devuelto por este método no proporciona acceso al resultado de una instrucción completada 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;
}