Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.179 Beiträge
 
Delphi 10.4 Sydney
 
#22

AW: TObjectList-Einträge auf meherere Threads aufteilen

  Alt 22. Jan 2021, 10:22
Delphi-Referenz durchsuchenTThreadList

Das ist keine Liste von Threads (TObjectList ist ja eine Liste von Objekten),
sondern es ist eine TList mit eingebauter Threadabsicherung. (also eigentlich eine TThreadsaveList)



Wieso Manuell aufteilen?
Lass die Einträge sich doch einfach dynamisch vereilen. (wer Zeit hat, der macht es)

* alle Aufgaben/Dateien in eine TThreadList
* dann X Threads starten (so viele, wie gewünscht)
* jeder Thread holt sich via ThreadList.Pop einwas raus
* * verarbeitet das
* * und wiederholt dann seine Schleife so oft, bis nichts mehr in der ThreadList drin ist
* dann kann er sich beenden (oder wartet, bis wieder was rein kommt, und arbeitet weiter)

Vorteile
* die ThreadList ist schon thread-sicher (hat die CriticalSection/Monitor bereits einbebaut)
* und wenn nicht alle Aufgaben gleich lange dauern, dann geht es auch schneller
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (22. Jan 2021 um 10:24 Uhr)
  Mit Zitat antworten Zitat