当我们使用foreach
并且Tasks
我们需要使用这样的局部变量时:
List<Task> TaskPool = new List<Task>();
foreach (TargetType Item in Source)
{
TargetType localItem = Item;
TaskPool.Add(Task.Factory.StartNew(() => DoSomething(localItem)));
}
Task.WaitAll(TaskPool.ToArray());
但是怎么样Parallel.Foreach
,我这样使用它:
Parallel.ForEach(Source, (TargetType item) => DoSomething(item));
因此,如您所见,没有任何局部变量。但是如何Parallel.Foreach
工作?不需要引入任何局部变量吗?或者如果需要,我该如何定义它?
更新
.NET 4 和 .NET 4.5 有什么区别吗?