Autor Beitrag
DelphMan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57



BeitragVerfasst: So 08.10.06 17:49 
Hallo,


auf Performancegründen würde ich gerne einen TThread wiederverwenden.

Also: TThread wird erstellt, create, destroy, execute werden definiert.
Der Tread wird erzeugt mit Create und dann mit Resume gestartet. Am Ende
der Execute-Methode habe ich Suspended:=true; gesetzt, so dass er mir
am "Ende" nicht abstirbt. Ein erneutes Ausführen von resume beendet dann
den Thread leider.

Meine Frage: Wie kann ich den Thread denn, wenn er am Ende angelangt ist
(Suspended:=True), auf Wunsch nochmal von vorne ausführen, ohne einen neuen
Thread erzeugen zu müssen (Execute soll nochmal "von vorne" ausgeführt werden)?
Ein Thread.Execute; klappt nicht.


Vielen Dank schonmal für Antworten!


Gruß

DelphMan
Spaceguide
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: So 08.10.06 17:53 
In der Execute Methode ein "while not Terminated do begin ... end;" aussenrum setzen.
DelphMan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57



BeitragVerfasst: So 08.10.06 18:11 
Hallo,


ja, das ist sicherlich eine Möglichkeit, ich hätte es jedoch gerne "auf Kommando"
ohne while-Schleifen (wenn das geht).

->Thread erzeugen
->per Resume Thread 1x abarbeiten
...
->per Befehl_X Thread wiederverwenden und nochmal abarbeiten


Gruß

DelphMan
DelphMan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 57



BeitragVerfasst: So 08.10.06 20:49 
Ich habe es jetzt mit Events gelöst (Endlosschleife in Execute, die auf Events reagiert).