Einzelnen Beitrag anzeigen

Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TThreadPool funktioniert nicht korrekt bei meinem Test

  Alt 4. Apr 2024, 08:43
Danke für die Anregungen.

Das ist mein erster Versuch, daher ist alles durcheinander.


Hallo, hast du erstmal ganz einfach getestet ob es klappt aus der Liste zu lesen (in der Thread Procedure ein bissschen zu warten) und dann ein Ergebnis zu schreiben?
Also ohne den Internet Zugriff.
Ohne Thread klappt das, also in einer normalen Schleife, wenn alle Einträge nacheinander abgearbeitet werden.


Ich verstehe nicht, warum diese exotisschen Dinge wie TThreadPool::QueueWorkItem(..) oder dein selbst erfundenes TSimpleSemaphore notwendig sind.
Bei Delphi 10.4 gibt es scheinbar keine Möglichkeit, mittels TThreadPool die Anzahl der Threads zu begrenzen, daher der Versuch über TSemaphore. Da aber auch TSemaphore scheinbar keine Erstellung mit einem Maximalparameter für die Begrenzung der Threads zulässt, habe ich TSimpleSemaphore erstellt.

Macht doch einfach deinen eigenen TThreadPool auf, mache so oft TTask.Run(..) wie du Einträge in der Liste hast und sage am Schluss TTask::WaitForAll(..) .
Das würde ich gerne, habe bisher aber nicht verstanden, wie das umgesetzt wird.

LG Mathias


PS:

Zitat von Der schöne Günther:
PS: Das eigentliche Abholen der Daten lässt sich sehr stark vereinfachen:
Ist das ein Thread?
Mathias
Ich vergesse einfach zu viel.

Geändert von NoGAD ( 4. Apr 2024 um 08:45 Uhr)
  Mit Zitat antworten Zitat