Core.Spread - Dmitry-Bychenko/Amphisbaena GitHub Wiki

Spread

Spread initial ChannelReader items into several identical readers.

Declaration (has overloads)

public static ChannelReader<T>[] Spread<T>(this ChannelReader<T> reader,
                                                ChannelParallelOptions options)

Example

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