sql >> Databáze >  >> RDS >> PostgreSQL

PLINQ on ConcurrentQueue není multithreading

Paralelizujete pouze výčet assertQueue a pak jej "unparalelizovat" zpět do obyčejného IEnumerable . To vše se děje před foreach smyčka dokonce začíná. Pak použijete obyčejný IEnumerable pomocí foreach který spouští tělo smyčky sériově.

Existuje mnoho způsobů, jak paralelně spustit tělo smyčky, ale první, který vás napadne, je použití Parallel.ForEach :

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


  1. Agregovat bitové NEBO v poddotazu

  2. jak mohu zkontrolovat omezení cizího klíče na omezení odstranění pomocí PHP

  3. LOAD DATA INFILE Kód chyby:13

  4. Selhání aplikace Qt při použití ovladače ODBC (macOS)