public void WriteThenGetConsumingEnumerable_StopsBlockingWhenCompleteWriting() { var buffer = new byte[] { 1, 2, 3 }; using (var stream = new BlockingMemoryStream()) { stream.Write(buffer, 0, buffer.Length); var readToListTask = new TaskFactory().StartNew(() => stream.GetConsumingEnumerable().ToList()); Assert.IsFalse(readToListTask.Wait(millisecondsTimeout: 100)); stream.CompleteWriting(); Assert.IsTrue(readToListTask.Wait(millisecondsTimeout: 1000)); CollectionAssert.AreEqual(buffer, readToListTask.Result); } }