Aller au contenu

await extrait le résultat

Contexte : await extrait le résultat d’une Task<T> ou ValueTask<T>, retournant la valeur sous‑jacente. Pour Task, il attend la fin sans retourner de valeur.

using System.Threading.Tasks;
public class Example
{
public async Task<int> GetNumberAsync() => 42;
public async Task UseAsync()
{
Task<int> task = GetNumberAsync();
int result = await task; // extrait l'entier
// result == 42
}
}

Vous devriez vérifier IsCompleted, utiliser des continuations, ou bloquer avec .Result.

Task<int> task = GetNumberAsync();
int result = task.Result; // bloque, dangereux

Enchaînement d’appels asynchrones : await rend naturel l’enchaînement séquentiel.

var user = await GetUserAsync();
var orders = await GetOrdersAsync(user.Id);