【发布时间】:2012-01-18 16:23:03
【问题描述】:
我有点困惑,因为当我使用这段代码时:
catalog.Elements = GetElements(myProvider.Elements);
catalog.Programs = GetPrograms(myProvider.Programs);
catalog.Details = GetDetails(myProvider.Details);
我有 4 秒。
当我尝试使用任务 (.NET 4.0) 时:
Task<List<Element>> elementsTask = Task.Factory.StartNew<List<Element>>(
delegate {
return GetElements(myProvider.Elements);
});
Task<List<Program>> programsTask = Task.Factory.StartNew<List<Program>>(
delegate {
return GetPrograms(myProvider.Programs);
});
Task<List<Detail>> detailsTask = Task.Factory.StartNew<List<Detail>>(
delegate {
return GetDetails(myProvider.Details);
});
catalog.Elements = elementsTask.Result;
catalog.Programs = programsTask.Result;
catalog.Details = detailsTask.Result;
我有 6 秒。
我不使用任务并行的时候速度更快是正常的吗?
谢谢
【问题讨论】:
-
你是如何测量时间的?
-
带秒表类
-
这些方法使用什么? sql server?
-
我有一个奔腾双核 CPU,我正在控制台项目中执行它。
-
这一切都取决于这些任务实际完成了多少工作,以及它的 CPU 或 IO 是否出现瓶颈