public TestChannel(int maxCount = 1)
 {
     _testChannelWriter          = new TestChannelWriter();
     _testChannelReader          = new TestChannelReader();
     _testChannelReader.MaxCount = maxCount;
     Writer = _testChannelWriter;
     Reader = _testChannelReader;
 }
예제 #2
0
        public async Task DefaultWriteAsync_UsesWaitToWriteAsyncAndTryWrite()
        {
            var c = new TestChannelWriter<int>(10);
            Assert.False(c.TryComplete());
            Assert.Equal(TaskStatus.Canceled, c.WriteAsync(42, new CancellationToken(true)).AsTask().Status);

            int count = 0;
            try
            {
                while (true)
                {
                    await c.WriteAsync(count++);
                }
            }
            catch (ChannelClosedException) { }
            Assert.Equal(11, count);
        }