Ejemplo n.º 1
0
        public async Task TestInterleaved()
        {
            int counter = 0;

            // Create some sample tasks
            IEnumerable <Task <int> > tasks = (from _ in Enumerable.Range(0, 100)
                                               select Task.Factory.StartNew <int>(() =>
            {
                Task.Delay(50 + 10 * counter).Wait();
                counter++;
                return(counter);
            })).ToList();

            var interleavedTasks = AsyncPatterns.InterleaveTasks(tasks);

            foreach (var task in interleavedTasks)
            {
                // Access each task as they complete
                int result = await task;
                Debug.WriteLine("Task Id: {0}", result);
            }
        }