assertQueue
の列挙だけを並列化しています それ自体を「非並列化」して、通常のIEnumerable
に戻します。 。これはすべて、foreach
の前に発生します ループも始まります。次に、通常のIEnumerable
を使用します foreach
を使用 ループの本体をシリアルに実行します。
ループの本体を並行して実行する方法はたくさんありますが、最初に頭に浮かぶのはParallel.ForEach
を使用することです。 :
Parallel.ForEach(arrestQueue, arrest =>
{
Geocoder geocodeThis = new Geocoder(arrest);
writeQueue.Enqueue(geocodeThis.Geocode());
Console.Out.WriteLine("Enqueued " + ++k);
});