TplExtensions.NoThrowAwaitable Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
NoThrowAwaitable(Task, Boolean) |
Restituisce un awaitable per l'attività specificata che non si genera mai, anche se l'attività di origine va in errore o viene annullata. |
NoThrowAwaitable(ValueTask, Boolean) |
Restituisce un awaitable per l'attività specificata che non si genera mai, anche se l'attività di origine va in errore o viene annullata. |
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean) |
Restituisce un awaitable per l'attività specificata che non si genera mai, anche se l'attività di origine va in errore o viene annullata. |
NoThrowAwaitable(Task, Boolean)
Restituisce un awaitable per l'attività specificata che non si genera mai, anche se l'attività di origine va in errore o viene annullata.
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
Parametri
- task
- Task
Attività il cui completamento deve segnalare il completamento dell'oggetto awaitable restituito.
- captureContext
- Boolean
se impostato sulla true
continuazione verrà pianificato nel contesto del chiamante; false
per eseguire sempre la continuazione nel pool di thread.
Restituisce
Un in attesa.
Si applica a
NoThrowAwaitable(ValueTask, Boolean)
Restituisce un awaitable per l'attività specificata che non si genera mai, anche se l'attività di origine va in errore o viene annullata.
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
Parametri
- task
- ValueTask
Attività il cui completamento deve segnalare il completamento dell'oggetto awaitable restituito.
- captureContext
- Boolean
se impostato sulla true
continuazione verrà pianificato nel contesto del chiamante; false
per eseguire sempre la continuazione nel pool di thread.
Restituisce
Un in attesa.
Si applica a
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)
Restituisce un awaitable per l'attività specificata che non si genera mai, anche se l'attività di origine va in errore o viene annullata.
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)
Parametri di tipo
- TResult
Tipo del risultato.
Parametri
- task
- ValueTask<TResult>
Attività il cui completamento deve segnalare il completamento dell'oggetto awaitable restituito.
- captureContext
- Boolean
se impostato sulla true
continuazione verrà pianificato nel contesto del chiamante; false
per eseguire sempre la continuazione nel pool di thread.
Restituisce
Un in attesa.
Commenti
L'oggetto awaitable restituito da questo metodo non fornisce l'accesso al risultato di un oggetto completato ValueTask<TResult>correttamente. Per attendere senza generare e usare il valore risultante, è possibile usare il modello seguente:
var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
var result = methodValueTask.Result;
}
else
{
var exception = methodValueTask.AsTask().Exception.InnerException;
}