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);
});