Sie parallelisieren nur die Aufzählung der assertQueue
sich selbst und es dann wieder in ein gewöhnliches IEnumerable
"entparallelisieren". . Dies geschieht alles vor dem foreach
Schleife beginnt sogar. Dann verwenden Sie das gewöhnliche IEnumerable
mit dem foreach
die den Rumpf der Schleife seriell ausführt.
Es gibt viele Möglichkeiten, den Schleifenkörper parallel auszuführen, aber die erste, die mir in den Sinn kommt, ist die Verwendung von Parallel.ForEach
:
Parallel.ForEach(arrestQueue, arrest =>
{
Geocoder geocodeThis = new Geocoder(arrest);
writeQueue.Enqueue(geocodeThis.Geocode());
Console.Out.WriteLine("Enqueued " + ++k);
});