Bạn chỉ đang song song hóa việc liệt kê assertQueue
chính nó và sau đó "vô song" nó trở lại thành một IEnumerable
bình thường . Tất cả điều này xảy ra trước foreach
vòng lặp thậm chí bắt đầu. Sau đó, bạn sử dụng IEnumerable
thông thường với foreach
chạy phần thân của vòng lặp nối tiếp nhau.
Có nhiều cách để chạy song song phần nội dung của vòng lặp nhưng cách đầu tiên bạn nghĩ đến là sử dụng Parallel.ForEach
:
Parallel.ForEach(arrestQueue, arrest =>
{
Geocoder geocodeThis = new Geocoder(arrest);
writeQueue.Enqueue(geocodeThis.Geocode());
Console.Out.WriteLine("Enqueued " + ++k);
});