【发布时间】:2014-06-03 10:48:30
【问题描述】:
我有一组可以并行运行的工作负载项目。有时只有 1 个,有时有很多。当我在大量工作负载上使用 Parallel.ForEach 时,它明显更快。所以这似乎是 Parelle.ForEach 的合适用法。
我已经阅读过,对于 1 或 2 的工作负载,最好不要使用 Parallel.ForEach。这是否意味着我必须用这种模式包装可变工作负载大小的每个 Parallel.ForEach?
if (workItems.Count==1)
{
foreach (MyItem item in workItems)
{
bool failed = WorkItWorkIt(item);
}
}
else
{
Parallel.ForEach(workItems, (item, loopState) =>
{
bool failed = WorkItWorkIt(item);
});
}
【问题讨论】:
-
你可以用同样的方法找到:测量。但它可能不会有太大的不同。实际选择取决于任务的数量和任务的大小。
标签: c# task-parallel-library parallel.foreach