次のように、通常の for each ループ内で Parallel.foreach と Task を使用することの違いを特定するのに役立つドキュメント/記事がありますか?
ケース 1 - Parallel.foreach:
Parallel.foreach
{
// Do SOmething thread safe: parsing an xml and then save
// into a DB Server thry respoitory approach
}
ケース 2 - foreach 内のタスク:
foreach
{
Task t1 = Task.factory.startNew(()=>
{
//Do the same thing as case 1 that is thread safe
}
}
Task.waitall()
- 私は独自のテストを行い、その結果、ケース 1 のパフォーマンスがケース 2 よりも優れていることが示されました。比率は次のようになります: シーケンシャル vs ケース 1 vs ケース 2 = 5 秒 : 1 秒 : 4 秒
ケース 1 とケース 2 はほぼ 1:4 ですが、? では、ループ内で並列に実行したい場合は、常に parallel.foreach または parallel.for を使用する必要があるということですか?