Autor Beitrag
Jimmy123
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 14.07.17 11:32 
Hallo Zusammen,


gibt es irgendein Algorythmus oder eine Möglichkeit alle Daten und Ordner im Listview Object schnellstmöglich anzuzeigen?

Ich meine jetzt nicht: (ist sehr langsam)
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
string dirPath = @"Pfad mit 1000. Dateien";

                List<string> dirs = new List<string>(Directory.EnumerateDirectories(dirPath, "*", SearchOption.AllDirectories));

                foreach (var dir in dirs)
                {
                    listview1.Items.Add(dir.Substring(dir.LastIndexOf("\\") + 1));
                    count++;
                }
                listview1.Items.Add("FERTIG  " + " Count: " + count);


Der Ordner beinhaltet 1000de Dateien in 100. Ordnern. Wenn ich das so starte, brauche ich selbst mit einem Core i7 und 16GB Arbeitsspeicher Minuten.

Vielen Dank...


Jimmy

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 14.07.17 13:09 
Programmiere den VirtualMode aus.

Ich würde mir aber auch überlgen ob da wirklich alles rein muß. Wenn das Control mit vielen Daten überfordert ist gilt das üblicherweise auch für den User davor und man sollte sein Ansatz überrüfen ob man nicht was hilfreicheres für den User anbieten kann.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 14.07.17 13:38 
Außerdem blockierst du ja währenddessen die gesamte UI, d.h. IO-Zugriffe und UI sollten in unabhängigen Codeteilen (und Threads/Tasks) ausgeführt werden.

Und ich stimme Ralf zu, daß man soviele Daten nicht auf einmal anzeigen sollte.
Jimmy123 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Fr 14.07.17 16:31 
Deine Idee mit dem VirtualMode war super!
Dadurch bin ich auf folgenden Artikel gestoßen:

geekswithblogs.net/a...10/06/21/140545.aspx

Das habe ich dann meinen Bedürfnissen mit einer "foreach" Schleife angepasst. 12.000 Dateien in 1 sek. Genau das was ich wollte.

Somit wäre das Ganze für mich erledigt. Bei Fragen gerne melden.

Danke nochmal!