Esempio n. 1
0
        public async Task <IEnumerable <int> > ParallelSync()
        {
            var list = new List <int>();

            var tasks = new Task[10];

            var context = new OneAtAtTimeSyncContext();

            try
            {
                SynchronizationContext.SetSynchronizationContext(context);

                for (int i = 0; i < tasks.Length; i++)
                {
                    tasks[i] = GetNumberAsync(list, i);
                }

                GetNumberAsync(list, i).Wait();

                await Task.WhenAll(tasks);
            }
            finally
            {
                SynchronizationContext.SetSynchronizationContext(null);
            }

            return(list);
        }
Esempio n. 2
0
        public async Task ParallelAsync()
        {
            var list = new List <int>();

            var tasks = new Task[10];

            var context = new OneAtAtTimeSyncContext();

            SynchronizationContext.SetSynchronizationContext(context);

            for (int i = 0; i < tasks.Length; i++)
            {
                tasks[i] = GetNumberAsync(list, i);
            }

            await Task.WhenAll(tasks);

            SynchronizationContext.SetSynchronizationContext(null);
        }