sql >> Databasteknik >  >> RDS >> PostgreSQL

PLINQ på ConcurrentQueue är inte multithreading

Du parallelliserar bara uppräkningen av assertQueue sig själv och sedan "unparallellera" den tillbaka till en vanlig IEnumerable . Allt detta händer före foreach slingan börjar till och med. Sedan använder du den vanliga IEnumerable med foreach som kör slingans kropp i serie.

Det finns många sätt att köra slingans kropp parallellt, men det första man tänker på är att använda Parallel.ForEach :

Parallel.ForEach(arrestQueue, arrest =>
    {
        Geocoder geocodeThis = new Geocoder(arrest);
        writeQueue.Enqueue(geocodeThis.Geocode());
        Console.Out.WriteLine("Enqueued " + ++k);
    });


  1. python 5x långsammare än perl mySql-fråga

  2. Hur man får id för en rad Jag har precis infogat php/mysql

  3. Lagra Lat Lng-värden i MySQL med Spatial Point Type

  4. node-mysql-fel:anslut ECONNREFUSED