Hallo,
ich habe folgendes "Problem". Zu erst durchsuche ich diverse Verzeichnisse rekursiv und baue mir eine Liste aus den Dateien vom Typ TStringlist. Dann gehe ich wie folgt diese Liste durch:
Delphi-Quellcode:
while( slFiles.Count > 0 ) do
begin
{...}
end;
Hierbei möchte ich noch anmerken, dass mir aufgefallen ist, dass diese Methode merklich langsamer läuft als mit einer ForToDo Schleife. Ich "muss" aber while nehmen, da ich den durchlauf jederzeit mit Break beenden möchte bzw. sich die Anzahl der Elemente in der Liste ändert, wenn jemand eine alternative hat, nur raus damit.
Delphi-Quellcode:
cFile vom Typ String
while( slFiles.Count > 0 ) do
begin
cFile := slFiles[0];
slFiles.Delete(0);
for i:=0 to slFiles.Count-1 do
{ Hier wird der Hash der Datei bei slFiles[i] berechnet }
end;
Das ganze läuft bei einigen Dateien recht gut, aber ich habe da zum Teil 32k Dateien, welche sich in der Liste befinden und das bräuchte zunächst 90 Stunden, was nicht wirklich das Problem ist (Lösung hätte ich schon); sondern vielmehr, dass die Applikation beim laufen dann >90% Auslastung hat, selbst bei niedriger Priorität.
Wie könnte ich die Auslastung der Applikation gering halten.
vielen Dank
Florian