Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }