PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PLINQ w ConcurrentQueue nie jest wielowątkowości

Paralelizujesz tylko wyliczenie assertQueue samego siebie, a następnie "nierównolegle" go z powrotem do zwykłego IEnumerable . To wszystko dzieje się przed foreach pętla nawet się zaczyna. Następnie używasz zwykłego IEnumerable z foreach który seryjnie uruchamia ciało pętli.

Istnieje wiele sposobów na równoległe uruchomienie ciała pętli, ale pierwszym, który przychodzi na myśl, jest użycie Parallel.ForEach :

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uwierzytelnianie bazy danych CAS nie działa

  2. Jak monitorować wydajność PostgreSQL 12 za pomocą OmniDB — część 2

  3. Zapobieganie sąsiednim/nakładającym się wpisom za pomocą EXCLUDE w PostgreSQL

  4. Jak napisać podzapytanie w klauzuli From w django ORM

  5. System rekomendacji aplikacji księgarni