使用する場合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 に違いはありますか?