Core.WhenAll - Dmitry-Bychenko/Amphisbaena GitHub Wiki
Converts Task<T> items within ChannelReader into T.
public static ChannelReader<T> WhenAll<T>(this ChannelReader<Task<T>> reader,
ChannelParallelOptions options) int[] data = Enumerable
.Range(0, 10000)
.ToArray();
int[] result = await data
.ToChannelReader()
.GroupByAdjacent(item => item % 2)
.Select(group => group.Reader.Aggregate((s, a) => s + a))
.WhenAll() // Aggregate returns Task<int>
.ToArrayAsync();