Flux asynchrones
Contexte : Les flux asynchrones (C# 8.0) permettent de produire et de consommer des séquences de données de manière asynchrone en utilisant IAsyncEnumerable<T> et await foreach.
using System;using System.Collections.Generic;using System.Threading.Tasks;
public class DataProducer{ public async IAsyncEnumerable<int> GetDataAsync() { for (int i = 0; i < 10; i++) { await Task.Delay(100); yield return i; } }}
// Consommateurpublic class Program{ public static async Task Main() { var producer = new DataProducer(); await foreach (var item in producer.GetDataAsync()) { Console.WriteLine(item); } }}Exemple d’utilisation dans le monde réel
Section intitulée « Exemple d’utilisation dans le monde réel »Lecture de gros fichiers ligne par ligne : Traitez chaque ligne de manière asynchrone sans charger tout le fichier en mémoire.
Exemple : System.IO.Stream peut être encapsulé dans un flux asynchrone.