TplExtensions.NoThrowAwaitable Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
NoThrowAwaitable(Task, Boolean) |
Vrátí hodnotu awaitable pro zadaný úkol, která nikdy nevyvolá chybu, a to ani v případě, že zdrojová úloha selže nebo je zrušena. |
NoThrowAwaitable(ValueTask, Boolean) |
Vrátí hodnotu awaitable pro zadaný úkol, která nikdy nevyvolá chybu, a to ani v případě, že zdrojová úloha selže nebo je zrušena. |
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean) |
Vrátí hodnotu awaitable pro zadaný úkol, která nikdy nevyvolá chybu, a to ani v případě, že zdrojová úloha selže nebo je zrušena. |
NoThrowAwaitable(Task, Boolean)
Vrátí hodnotu awaitable pro zadaný úkol, která nikdy nevyvolá chybu, a to ani v případě, že zdrojová úloha selže nebo je zrušena.
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
Úkol, jehož dokončení by mělo signalizovat dokončení vráceného operátoru awaitable.
- captureContext
- Boolean
pokud je nastaveno na true
pokračování, bude naplánováno v kontextu volajícího; false
vždy provést pokračování ve fondu vláken.
Návraty
Čeká na vás.
Platí pro
NoThrowAwaitable(ValueTask, Boolean)
Vrátí hodnotu awaitable pro zadaný úkol, která nikdy nevyvolá chybu, a to ani v případě, že zdrojová úloha selže nebo je zrušena.
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
Úkol, jehož dokončení by mělo signalizovat dokončení vráceného operátoru awaitable.
- captureContext
- Boolean
pokud je nastaveno na true
pokračování, bude naplánováno v kontextu volajícího; false
vždy provést pokračování ve fondu vláken.
Návraty
Čeká na vás.
Platí pro
NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)
Vrátí hodnotu awaitable pro zadaný úkol, která nikdy nevyvolá chybu, a to ani v případě, že zdrojová úloha selže nebo je zrušena.
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 výsledku
Parametry
- task
- ValueTask<TResult>
Úkol, jehož dokončení by mělo signalizovat dokončení vráceného operátoru awaitable.
- captureContext
- Boolean
pokud je nastaveno na true
pokračování, bude naplánováno v kontextu volajícího; false
vždy provést pokračování ve fondu vláken.
Návraty
Čeká na vás.
Poznámky
Funkce awaitable vrácená touto metodou neposkytuje přístup k výsledku úspěšně dokončeného ValueTask<TResult>. Pokud chcete počkat bez vyvolání a použít výslednou hodnotu, můžete použít následující vzor:
var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
var result = methodValueTask.Result;
}
else
{
var exception = methodValueTask.AsTask().Exception.InnerException;
}