Coroutines · TL;DR

1 min read
Senior7 min read
Rapid overview

TL;DR

C# "coroutines" in practice means IAsyncEnumerable<T> plus Channel<T>: a pull-based, async-aware streaming pipeline where await foreach drives a producer that suspends on both await and yield return. They matter because they replace Task<IEnumerable<T>> buffering with one-item-at-a-time streaming, give you natural backpressure between fast producers and slow consumers, and underpin EF Core AsAsyncEnumerable, gRPC server streams, SignalR streaming hubs, and minimal-memory file/API pagination.

See also