IAsyncEnumerable : streamer des résultats
AvancéPermet de traiter des éléments au fur et à mesure qu'ils arrivent, sans attendre que toute la collection soit chargée en mémoire.
public async IAsyncEnumerable<Utilisateur> LireTousLesUtilisateursAsync(
[EnumeratorCancellation] CancellationToken ct = default)
{
await foreach (var u in db.Utilisateurs.AsAsyncEnumerable().WithCancellation(ct))
{
yield return u;
}
}
// Consommation
await foreach (var utilisateur in LireTousLesUtilisateursAsync())
{
Console.WriteLine(utilisateur.Nom);
}
ASP.NET Core sait aussi renvoyer directement un IAsyncEnumerable<T> depuis un endpoint, en streamant la réponse JSON au client au lieu de tout charger en mémoire côté serveur.