Partager via


TplExtensions.NoThrowAwaitable Méthode

Définition

Surcharges

NoThrowAwaitable(Task, Boolean)

Retourne un élément pouvant être attendu pour la tâche spécifiée qui ne se lèvera jamais, même en cas d'erreur ou d'annulation de la tâche source.

NoThrowAwaitable(ValueTask, Boolean)

Retourne un élément pouvant être attendu pour la tâche spécifiée qui ne se lèvera jamais, même en cas d'erreur ou d'annulation de la tâche source.

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

Retourne un élément pouvant être attendu pour la tâche spécifiée qui ne se lèvera jamais, même en cas d'erreur ou d'annulation de la tâche source.

NoThrowAwaitable(Task, Boolean)

Retourne un élément pouvant être attendu pour la tâche spécifiée qui ne se lèvera jamais, même en cas d'erreur ou d'annulation de la tâche source.

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

Paramètres

task
Task

Tâche dont l’achèvement doit signaler l’achèvement de l’élément attendu retourné.

captureContext
Boolean

si la valeur est définie true sur la continuation sera planifiée sur le contexte de l’appelant ; false pour toujours exécuter la continuation sur le threadpool.

Retours

Une attente.

S’applique à

NoThrowAwaitable(ValueTask, Boolean)

Retourne un élément pouvant être attendu pour la tâche spécifiée qui ne se lèvera jamais, même en cas d'erreur ou d'annulation de la tâche source.

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

Paramètres

task
ValueTask

Tâche dont l’achèvement doit signaler l’achèvement de l’élément attendu retourné.

captureContext
Boolean

si la valeur est définie true sur la continuation sera planifiée sur le contexte de l’appelant ; false pour toujours exécuter la continuation sur le threadpool.

Retours

Une attente.

S’applique à

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

Retourne un élément pouvant être attendu pour la tâche spécifiée qui ne se lèvera jamais, même en cas d'erreur ou d'annulation de la tâche source.

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)

Paramètres de type

TResult

Type du résultat.

Paramètres

task
ValueTask<TResult>

Tâche dont l’achèvement doit signaler l’achèvement de l’élément attendu retourné.

captureContext
Boolean

si la valeur est définie true sur la continuation sera planifiée sur le contexte de l’appelant ; false pour toujours exécuter la continuation sur le threadpool.

Retours

Une attente.

Remarques

L’objet awaitable retourné par cette méthode ne fournit pas l’accès au résultat d’un ValueTask<TResult>. Pour attendre sans lever et utiliser la valeur résultante, le modèle suivant peut être utilisé :

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

S’applique à