public void Can_ExecuteDataTableTask() { var dsTasks = new List <Task>(); // 여러 테이블의 정보를 비동기적으로 거의 동시에 로드합니다. // foreach (var section in Sections2) { var query = DefaultAdoRepository.QueryProvider.GetQuery(section, QueryKey); Assert.IsNotEmpty(query); var task = DefaultAdoRepository .ExecuteDataTableAsync(query) .ContinueWith(antecedent => { using (var dataTable = antecedent.Result) { Assert.IsFalse(dataTable.HasErrors); if (IsDebugEnabled) { log.Debug("Table[{0}] has [{1}] rows", dataTable.TableName, dataTable.Rows.Count); } } }, TaskContinuationOptions.ExecuteSynchronously); dsTasks.Add(task); } Task.WaitAll(dsTasks.ToArray()); dsTasks.All(t => t.IsCompleted).Should().Be.True(); }
public void Can_ExecuteDataReaderTask() { var dsTasks = new List <Task>(); // 여러 테이블의 정보를 비동기적으로 거의 동시에 로드합니다. // foreach (var section in Sections2) { var query = DefaultAdoRepository.QueryProvider.GetQuery(section, QueryKey); Assert.IsNotEmpty(query); var task = DefaultAdoRepository .ExecuteReaderAsync(query) .ContinueWith(antecedent => { using (var reader = antecedent.Result) { var count = 0; while (reader.Read()) { count++; } if (IsDebugEnabled) { log.Debug("결과 셋의 갯수=[{0}]", count); } reader.Dispose(); } }, TaskContinuationOptions.ExecuteSynchronously); dsTasks.Add(task); } Task.WaitAll(dsTasks.ToArray()); dsTasks.All(t => t.IsCompleted).Should().Be.True(); }