public static async Task MsgWithCancellation() { var ch = new PipelinesTest(); var cts = new CancellationTokenSource(); cts.CancelAfter(TimeSpan.FromSeconds(5)); var joe = PipelinesTest.CreateMessenger("joe", 10, cts.Token); await foreach (var item in joe.ReadAllAsync()) { Console.WriteLine(item); } }
public static async Task SplitAndMerge() { var ch = new PipelinesTest(); var joe = PipelinesTest.CreateMessenger("joe", 10); var readers = PipelinesTest.Split(joe, 3); var tasks = new List <Task>(); for (int i = 0; i < readers.Count; i++) { var reader = readers[i]; var index = i; tasks.Add(Task.Run(async() => { await foreach (var item in reader.ReadAllAsync()) { Console.WriteLine($"Reader {index}: {item}"); } })); } await Task.WhenAll(tasks); }