👋 Стриминговые API в C# — используй
IAsyncEnumerableIAsyncEnumerable оптимизирован для потоковой передачи данных и полностью совместим с async/await.🟠 Производители используют
IAsyncEnumerable<T> с yield return🟠 Потребители читают данные через
await foreachЗачем нужны стриминговые API?
В отличие от bulk-передачи, стриминг отправляет данные пакетами.
Сколько и когда передавать — зависит от кода, создающего
IAsyncEnumerable.Параметр
T задаёт тип элемента, который будет возвращаться в потоке.Где особенно полезно:
1⃣ Отправка больших (или даже бесконечных) наборов данных
Пример: поливать сад из шланга вместо таскания вёдер с водой.
Вёдра тяжелее (ресурсоёмко) и требуют ожидания (блокировка).
2⃣ Получение внешних данных — API, IoT-сенсоры, очереди сообщений
Когда нельзя предсказать, когда будет готов следующий элемент —
IAsyncEnumerable идеально подходит.3⃣ Снижение потребления памяти
Данные проходят потоком и не накапливаются в памяти целиком.
👉Новости 👉База вопросов
