Esempio n. 1
0
        public async Task TestMethod1()
        {
            var iterated = new List <int>();
            var sequence = new AsyncSequence();

            await foreach (var item in sequence)
            {
                iterated.Add(item);
            }
            Assert.IsTrue(iterated.Count == 10);
        }
Esempio n. 2
0
        private static async AsyncSequence <int> Test2()
        {
            var yield = await AsyncSequence <int> .Capture();

            await Task.Delay(0).ConfigureAwait(false);

            for (var i = 1; i <= 3; i++)
            {
                yield.Return(i);
            }

            return(yield.Break());
        }
Esempio n. 3
0
        public static async AsyncSequence <int> Producer2()
        {
            var seq = await AsyncSequence <int> .Capture(); // Capture the underlying 'Task'

            for (int i = 1; i <= 5; i++)
            {
                await Task.Delay(100).ConfigureAwait(false); // Use any async constructs

                seq.Return(i);                               // Return to an awaiting MoveNext, or queue the result.
            }

            return(seq.Break());                           // Returns false to awaiting MoveNext
        }
Esempio n. 4
0
        private static async AsyncSequence <int> Test1()
        {
            var yield = await AsyncSequence <int> .Capture();

            await Task.Delay(0).ConfigureAwait(false);

            yield.Return(1);

            yield.Return(2);

            yield.Return(3);

            return(yield.Break());
        }
Esempio n. 5
0
        public async Task TestMethod2()
        {
            var iterated = new List <int>();
            var sequence = new AsyncSequence();
            IAsyncEnumerator <int> enumerator = sequence.GetAsyncEnumerator();

            try
            {
                while (await enumerator.MoveNextAsync())
                {
                    iterated.Add(enumerator.Current);
                }
            }
            finally { await enumerator.DisposeAsync(); }
            Assert.IsTrue(iterated.Count == 10);
        }