Announcement

Collapse
No announcement yet.

Datenbank zu ObservableCollection durch Dispatcher langsam

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbank zu ObservableCollection durch Dispatcher langsam

    Hallo zusammen,
    Ich habe eine WPF Anwendung, diese zeigt in einer ListView Einträge aus einer SQLite Datenbank an, d.h. ich lade die Daten aus einer Datenbank in eine DataTable, dann geh ich die DataTable durch und erstelle aus den Einträgen Objekte, diese Objekte haben einen Verweis auf andere Objekte die schon zuvor geladen wurden (durch eine Schleife wurden die richtigen Objekte ausgewählt und hinzugefügt).
    Diese Objekte werden einer ObservableCollection hinzugefügt und an die ListView gebunden.
    Dass die Oberfläche responsive bleibt, habe ich die Abfrage in einen Thread ausgelagert und die Objekte werden über einen Dispatcher der ObservableCollection (list) hinzugefügt:
    Code:
    Action del = () => list.Add((T)tmp);
    dispatcher.Invoke(del);
    Allerdings wird das ab ca. 2000 Einträgen schon relativ langsam, das heißt für die ersten 1000 Einträge braucht es ca. 30sec und für die nächsten 1000 Einträge braucht es dann schon über 1min auf einer i5(zweite Generation) CPU mit 8GB RAM und SSD.

    Gibt es eine Möglichkeit, das ganze zu beschleunigen?

    Vielen Dank!

    Gruß,
    Dennis

  • #2
    Die Action nicht je Element sondern für ganze Blöcke von T's ausführen?

    Comment


    • #3
      Vielen Dank schon einmal für die schnelle Antwort!

      D.h. ich versuch die T in eine private Liste von T zu speichern und wenn ich beispielsweise 100 Stück in der Liste hab führe ich einmal den dispatcher für alle aus, oder?

      Gruß,
      Dennis

      Comment


      • #4
        Zum Beispiel. Ob das Ideal ist kann man mit wenigen was wir über deine Anwendung wissen nicht sagen.

        Comment

        Working...
        X