TplExtensions.NoThrowAwaitable Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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;
}