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