CancellationToken
AvancéUn CancellationToken propage une demande d'annulation à travers toute une chaîne d'appels asynchrones — indispensable pour annuler une requête HTTP abandonnée par le client, par exemple.
public async Task<Utilisateur?> RecupererUtilisateurAsync(int id, CancellationToken ct)
{
return await db.Utilisateurs
.FirstOrDefaultAsync(u => u.Id == id, ct);
}
// ASP.NET Core injecte automatiquement le token lié à la requête HTTP
app.MapGet("/utilisateurs/{id:int}", async (int id, AppDbContext db, CancellationToken ct) =>
{
var u = await db.Utilisateurs.FirstOrDefaultAsync(x => x.Id == id, ct);
return u is not null ? Results.Ok(u) : Results.NotFound();
});
// Créer un token avec timeout manuel
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10));
await RecupererUtilisateurAsync(1, cts.Token);