public void Merge() { var chan1 = new Chan<int>(); var chan2 = new Chan<int>(); chan1 .Send(Enumerable.Range(0, 10)) .ContinueWith(t => chan1.Close()); chan2 .Send(Enumerable.Range(0, 10)) .ContinueWith(t => chan2.Close()); var mergedChan = chan1.Merge(chan2); var cnt = 0; var collection = mergedChan.ForEach(item => cnt++); if (!collection.Wait(TimeSpan.FromSeconds(10))) { Assert.Fail(); } Assert.AreEqual(20, cnt); }