Einzelnen Beitrag anzeigen

jziersch

Registriert seit: 9. Okt 2003
Ort: München
186 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: For Schleife zählt mehr als vorhanden. iTask, for Schleife, integer -> fehler

  Alt 23. Jun 2021, 07:54
Zitat:
Also ist die Idee, die erste Struktur in eine Stringlist zu packen, dann aufzuteilen (hier / 12 oder wenn X < 12 dann = X).Sind es 24 ordner dann bekommt jeder Thread 2 Ordner die er mit Unterordner auslesen soll.
Jeder Thread hat eine eigene ErgebnisStringList die nach Ablauf aller Threats zusammengeführt, sortiert und in das Stringgrid gepackt wird.
Das macht Dir eine TParallel.For schleife automatisch. Mein Vorschlag: lies erst Dein Hauptverzeichnis in eine Liste und arbeite diese Liste mit For() ab.

http://docwiki.embarcadero.com/Libra....TParallel.For

In TParallel.For sollten keine Synchronize Aufrufe stattfinden. Diese sind eigentlich meistens eine schlechte Idee, da sie den Thread dazu bringen zu warten. Besser ist es, das Ergebnis in eine geschützte Variable zu packen und der Oberfläche des Programmes mitzuteilen, dass sie die geschützte Variable auslesen darf um die Ergebnisanzeige zu aktualisieren.

Da TParallel.For den aktuellen Prozess blockiert, muss in diesem Fall der Aufruf in einem TTask.Run() erfolgen.
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  Mit Zitat antworten Zitat