예제 #1
0
        public async void Normal_2_Consumers_One_Take()
        {
            var push = new MulticastAsyncEnumerable <int>();

            var en1 = push.Take(3).GetAsyncEnumerator();

            var task1 = Task.Run(async() =>
            {
                await en1.AssertResult(1, 2, 3);
            });

            var en2   = push.GetAsyncEnumerator();
            var task2 = Task.Run(async() =>
            {
                await en2.AssertResult(1, 2, 3, 4, 5);
            });

            for (var i = 1; i <= 5; i++)
            {
                await push.Next(i);
            }
            await push.Complete();

            await task1;
            await task2;
        }