</>
Plan du cours — 41/46

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.