Sprache

TplExtensions.NoThrowAwaitable Methode

Definition

Überlädt

Name Beschreibung
NoThrowAwaitable(Task, Boolean)

Gibt einen awaitable für den angegebenen Vorgang zurück, der nie ausgelöst wird, auch wenn die Quellaufgabe fehlerhaft ist oder abgebrochen wird.

NoThrowAwaitable(ValueTask, Boolean)

Gibt einen awaitable für den angegebenen Vorgang zurück, der nie ausgelöst wird, auch wenn die Quellaufgabe fehlerhaft ist oder abgebrochen wird.

NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)

Gibt einen awaitable für den angegebenen Vorgang zurück, der nie ausgelöst wird, auch wenn die Quellaufgabe fehlerhaft ist oder abgebrochen wird.

NoThrowAwaitable(Task, Boolean)

Gibt einen awaitable für den angegebenen Vorgang zurück, der nie ausgelöst wird, auch wenn die Quellaufgabe fehlerhaft ist oder abgebrochen wird.

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

Parameter

task
Task

Der Vorgang, dessen Abschluss den Abschluss des zurückgegebenen wartenden Vorgangs signalisieren soll.

captureContext
Boolean

wenn diese auf true die Fortsetzung festgelegt ist, wird im Kontext des Aufrufers geplant; false um die Fortsetzung immer im Threadpool auszuführen.

Gibt zurück

Eine wartebar.

Gilt für:

NoThrowAwaitable(ValueTask, Boolean)

Gibt einen awaitable für den angegebenen Vorgang zurück, der nie ausgelöst wird, auch wenn die Quellaufgabe fehlerhaft ist oder abgebrochen wird.

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

Parameter

task
ValueTask

Der Vorgang, dessen Abschluss den Abschluss des zurückgegebenen wartenden Vorgangs signalisieren soll.

captureContext
Boolean

wenn diese auf true die Fortsetzung festgelegt ist, wird im Kontext des Aufrufers geplant; false um die Fortsetzung immer im Threadpool auszuführen.

Gibt zurück

Eine wartebar.

Gilt für:

NoThrowAwaitable<TResult>(ValueTask<TResult>, Boolean)

Gibt einen awaitable für den angegebenen Vorgang zurück, der nie ausgelöst wird, auch wenn die Quellaufgabe fehlerhaft ist oder abgebrochen wird.

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)

Typparameter

TResult

Der Typ des Ergebnisses.

Parameter

task
ValueTask<TResult>

Der Vorgang, dessen Abschluss den Abschluss des zurückgegebenen wartenden Vorgangs signalisieren soll.

captureContext
Boolean

wenn diese auf true die Fortsetzung festgelegt ist, wird im Kontext des Aufrufers geplant; false um die Fortsetzung immer im Threadpool auszuführen.

Gibt zurück

Eine wartebar.

Hinweise

Die von dieser Methode zurückgegebene awaitable bietet keinen Zugriff auf das Ergebnis eines erfolgreich abgeschlossenen ValueTask<TResult>Vorgangs. Zum Warten ohne Auslösen und Verwenden des resultierenden Werts kann das folgende Muster verwendet werden:

var methodValueTask = MethodAsync().Preserve();
await methodValueTask.NoThrowAwaitable(true);
if (methodValueTask.IsCompletedSuccessfully)
{
  var result = methodValueTask.Result;
}
else
{
  var exception = methodValueTask.AsTask().Exception.InnerException;
}

Gilt für: