Anda hanya memparalelkan enumerasi assertQueue
sendiri dan kemudian "tidak paralel" kembali menjadi IEnumerable
biasa . Ini semua terjadi sebelum foreach
lingkaran bahkan dimulai. Kemudian Anda menggunakan IEnumerable
biasa dengan foreach
yang menjalankan body loop secara serial.
Ada banyak cara untuk menjalankan body loop secara paralel tetapi yang pertama muncul di pikiran adalah menggunakan Parallel.ForEach
:
Parallel.ForEach(arrestQueue, arrest =>
{
Geocoder geocodeThis = new Geocoder(arrest);
writeQueue.Enqueue(geocodeThis.Geocode());
Console.Out.WriteLine("Enqueued " + ++k);
});