Moin!
Ich brauch mal wieder einen Denk-Schubser von euch...
Ich habe eine Konsolen-App, die mehrere Nachfahren von TThread instanziiert und darauf warten soll, dass alle terminieren, dann kann die Anwendung auch beendet werden. Im Hauptthread soll dabei natürlich die CPU-Last gering bleiben.
Wie macht man das am einfachsten/elegantesten?!

Erschwerend kommt hinzu, dass es u.U. nötig ist, weitere Worker-Threads nachzustarten, wenn noch Arbeit anliegt (konkret: es gibt N Arbeitsaufträge und max. n Worker-Threads, so dass ein Überhang zu beachten ist). Ich habe natürlich als Erstes das OnTerminate-Ereigniss im Auge gehabt, dieses wird aber synchronisiert aufgerufen - was leider in der Konsole nicht klappt, da dort keine MessageLoop greift. Also ohne OnTerminate, aber wie?

Hier sind grad irgendwie ziemlich viele Bäume...
Bitte folgende Rahmenbedingungen beachten: Konsolen-App deshalb, weil ich keine GUI brauche und die Ausgabe umleiten können will, was bei einer Konsolen-App sehr einfach/universell beim Aufruf geht. Nachfahre(n) von TThread, weil ich mit der Windows-Thread-API selbst kaum Erfahrung habe.

Da das Programm praktisch fertig ist, nur die Thread-Warten-Anbindung nicht läuft, möchte ich ungerne das Ding auf eine VCL-Basis hieven müssen...
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.