TThread bremst das Programm aus

Hallo,

Ich verzweifle gerade am Versuch in Delphi XE2 unter Windows 7 Pro, eine Simulation mit Multihtreading zu beschleunigen. Weil schon mit bloßem Auge zu sehen war, dass das Programm immer wieder ins Stocken gerät, habe ich mal die Zeit gemessen, die an verschiedenen Stellen des Codes verbraten wird. Dabei hat sich herausgestellt, dass es häufig mehrere huntert Millisekunden dauert, bis nach dem Ende der Execute.Methode das OnTerminate-Event ausgelöst wird. Ich habe es schon mit einer Erhöhung der Priorität versucht, aber das bringt leider gar nichts. Gibt es eine Möglichkeit, die Threads zu zwingen, sich nach getaner Arbeit schneller zurück zu melden?

Vielen Dank und Grüße,
DrStupid

Ich habe das Problem jetzt erst einmal umgangen, indem ich die für das OnTerminate-Event gedachte Prozedur als neue Eigenschaft an die Threads übergebe und am Ende der Execute-Methode explizit aufrufe. Alledings ist das keine saubere Lösung. Nachdem sich alle Threads eines Simulationsschrittes zurückgemeldet haben, werden gleich neue Threads für den nächsten Schritt gestartet. Die alten Threads existieren dann aber noch und es kann nach meinen bisherigen Erfahrungen bis zu einer Sekunde dauern, bis sie endlich beendet werden. Bei schnellen Berechnungen sammeln sich in dieser Zeit sehr viele Threads an. Deshalb wäre ich noch immer für Vorschläge dankbar, wie man OnTerminate beschleunigen kann.