Aller au contenu

IAsyncEnumerable<T>

Contexte : IAsyncEnumerable<T> est la version asynchrone de IEnumerable<T>. Elle permet l’itération asynchrone avec await foreach.

using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
public class FileReader
{
public async IAsyncEnumerable<string> ReadLinesAsync(string filePath)
{
using var reader = new StreamReader(filePath);
string line;
while ((line = await reader.ReadLineAsync()) != null)
{
yield return line;
}
}
}
  • Pas besoin de mettre toutes les données en mémoire tampon.
  • Chaque élément peut être produit de manière asynchrone.
  • Fonctionne avec await foreach.

Flux de base de données : Dans EF Core, AsAsyncEnumerable() retourne IAsyncEnumerable<T> pour le flux des résultats de requête.

Exemple : Flux asynchrones EF Core