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; }