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:
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
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);
Gibt es eine Möglichkeit, das ganze zu beschleunigen?
Vielen Dank!
Gruß,
Dennis
Comment