Está paralelizando solo la enumeración de assertQueue
mismo y luego "desparalelizarlo" de nuevo en un IEnumerable
ordinario . Todo esto sucede antes del foreach
el bucle incluso comienza. Luego usas el IEnumerable
ordinario con el foreach
que ejecuta el cuerpo del ciclo en serie.
Hay muchas formas de ejecutar el cuerpo del bucle en paralelo, pero la primera que me viene a la mente es usar Parallel.ForEach
:
Parallel.ForEach(arrestQueue, arrest =>
{
Geocoder geocodeThis = new Geocoder(arrest);
writeQueue.Enqueue(geocodeThis.Geocode());
Console.Out.WriteLine("Enqueued " + ++k);
});