TplExtensions.NoThrowAwaitable Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
NoThrowAwaitable(Task, Boolean) |
Zwraca oczekiwaną wartość dla określonego zadania, które nigdy nie zostanie zwrócone, nawet jeśli błędy zadania źródłowego lub zostaną anulowane. |
NoThrowAwaitable(ValueTask, Boolean) |
Zwraca oczekiwaną wartość dla określonego zadania, które nigdy nie zostanie zwrócone, nawet jeśli błędy zadania źródłowego lub zostaną anulowane. |
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean) |
Zwraca oczekiwaną wartość dla określonego zadania, które nigdy nie zostanie zwrócone, nawet jeśli błędy zadania źródłowego lub zostaną anulowane. |
NoThrowAwaitable(Task, Boolean)
Zwraca oczekiwaną wartość dla określonego zadania, które nigdy nie zostanie zwrócone, nawet jeśli błędy zadania źródłowego lub zostaną anulowane.
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
Parametry
- task
- Task
Zadanie, którego ukończenie powinno sygnalizować ukończenie zwróconej oczekiwanej wartości.
- captureContext
- Boolean
jeśli zostanie ustawiona true
na kontynuację, zostanie zaplanowana w kontekście obiektu wywołującego, false
aby zawsze wykonać kontynuację w puli wątków.
Zwraca
Oczekiwanie.
Dotyczy
NoThrowAwaitable(ValueTask, Boolean)
Zwraca oczekiwaną wartość dla określonego zadania, które nigdy nie zostanie zwrócone, nawet jeśli błędy zadania źródłowego lub zostaną anulowane.
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
Parametry
- task
- ValueTask
Zadanie, którego ukończenie powinno sygnalizować ukończenie zwróconej oczekiwanej wartości.
- captureContext
- Boolean
jeśli zostanie ustawiona true
na kontynuację, zostanie zaplanowana w kontekście obiektu wywołującego, false
aby zawsze wykonać kontynuację w puli wątków.
Zwraca
Oczekiwanie.
Dotyczy
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)
Zwraca oczekiwaną wartość dla określonego zadania, które nigdy nie zostanie zwrócone, nawet jeśli błędy zadania źródłowego lub zostaną anulowane.
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)
Parametry typu
- TResult
Typ wyniku.
Parametry
- task
- ValueTask<TResult>
Zadanie, którego ukończenie powinno sygnalizować ukończenie zwróconej oczekiwanej wartości.
- captureContext
- Boolean
jeśli zostanie ustawiona true
na kontynuację, zostanie zaplanowana w kontekście obiektu wywołującego, false
aby zawsze wykonać kontynuację w puli wątków.
Zwraca
Oczekiwanie.
Uwagi
Oczekiwany element zwrócony przez tę metodę nie zapewnia dostępu do wyniku pomyślnego ukończenia ValueTask<TResult>. Aby poczekać bez zgłaszania i użyć wynikowej wartości, można użyć następującego wzorca:
var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
var result = methodValueTask.Result;
}
else
{
var exception = methodValueTask.AsTask().Exception.InnerException;
}