Асинхронная последовательность IAsyncEnumerable в C#
Интерфейс IAsyncEnumerable<T> выдаёт элементы по одному и не собирает их заранее. Так читают страницы ответа, поток сообщений или журнал.
Оператор await foreach читает последовательность с await между элементами.
Пройдём последовательность из двух чисел. Между ними есть пауза:
static async IAsyncEnumerable<int> StreamNumsAsync()
{
yield return 1;
await Task.Delay(1);
yield return 2;
}
await foreach (int n in StreamNumsAsync())
{
Console.WriteLine(n); // выведет 1, 2
}
Пройдите последовательность строк "red", "green" и "blue" и выведите число элементов.