예제 #1
0
        public void Can_ExecutePagingDataTableTask()
        {
            var dsTasks = new List <Task>();

            // 여러 테이블의 정보를 비동기적으로 거의 동시에 로드합니다.
            //
            foreach (var section in Sections2)
            {
                var query = NorthwindAdoRepository.QueryProvider.GetQuery(section, QueryKey);
                Assert.IsNotEmpty(query);

                var task = NorthwindAdoRepository
                           .ExecutePagingDataTableAsync(query, 1, 10)
                           .ContinueWith(antecedent => {
                    using (var pagingDataTable = antecedent.Result) {
                        Assert.IsFalse(pagingDataTable.Table.HasErrors);

                        //if(IsDebugEnabled)
                        //    log.Debug("PagingDataTable=", pagingDataTable);
                    }
                },
                                         TaskContinuationOptions.ExecuteSynchronously);
                dsTasks.Add(task);
            }

            Task.WaitAll(dsTasks.ToArray());
            dsTasks.All(t => t.IsCompleted).Should().Be.True();
        }