Du paralleliserer kun opregningen af assertQueue
sig selv og derefter "unparallelisere" det tilbage til en almindelig IEnumerable
. Alt dette sker før foreach
sløjfe starter endda. Så bruger du den almindelige IEnumerable
med foreach
som kører løkkens krop serielt.
Der er mange måder at køre løkken på parallelt, men den første man tænker på er at bruge Parallel.ForEach
:
Parallel.ForEach(arrestQueue, arrest =>
{
Geocoder geocodeThis = new Geocoder(arrest);
writeQueue.Enqueue(geocodeThis.Geocode());
Console.Out.WriteLine("Enqueued " + ++k);
});