Core.WhenAll - Dmitry-Bychenko/Amphisbaena GitHub Wiki

WhenAll

Converts Task<T> items within ChannelReader into T.

Declaration (has overloads)

public static ChannelReader<T> WhenAll<T>(this ChannelReader<Task<T>> reader, 
                                               ChannelParallelOptions options)      

Example

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();
⚠️ **GitHub.com Fallback** ⚠️