Core.Spread - Dmitry-Bychenko/Amphisbaena GitHub Wiki
Spread initial ChannelReader items into several identical readers.
public static ChannelReader<T>[] Spread<T>(this ChannelReader<T> reader,
ChannelParallelOptions options)using Amphisbaena;
using Amphisbaena.Linq;
...
int[] data = Enumerable
.Range(1, 100)
.ToArray();
var channels = data
.ToChannelReader()
.Spread(2);
Task<int>[] next = new Task<int>[] {
channels[0].Min(),
channels[1].Max()
};
await Task.WhenAll(next);
int min = await next[0];
int max = await next[1];