Ich hatte heute Morgen meinen Code noch mit Synchronize abgesichert und es lief auch ganz gut, dann musste ich weg.
Jetzt schaue ich hier ins Forum und sehe das Beispiel von Schokohase (
unit AsyncWithTasks.MainForm).
Die einzelnen Verzeichnisse in Striglisten zu speichern und dann an den MainThread weiterzugeben hatte ich für später auch schon geplant, wollte aber erst mal klein anfangen, was, wie man sieht, nicht sinnvoll ist.
Im Schokohasen Beispiel ist ja schon ziemlich alles drin was ich insgesamt erreichen wollte.
Höchstens nochmal versuchen ob Pooling (task.Queue) noch was bringt.
Wenn ich das richtig verstehe, wird ein FSearchDirTask := TDirectoryUtil.GetDirectoriesAsync aufgemacht der dann rekursiv durch die Verzeichnisse geht und pro Verzeichnist dann eine Stringliste an den Mainthread übergibt (PresentFiles(Files)).
Das "filesCompletion: TProc<TStringDynArray,
Exception>;" muss ich mir noch genauer ansehen um das errorhandling zu verstehen und wie ich das verarbeite.
Ist "FFiles: TList<string>;" eine TStringlist ? Diese Schreibweise kenne ich noch nicht.
Dann fange ich am besten nochmal von vorne an, indem ich den SchokohasenThread als Vorlage benutze.
Danke Schokohase für den kompletten benutzbaren Code.
Ein Beispiel sagt mir mehr als viele Diskussionen.
Melde mich wieder, wenn ich es umgesetzt habe.