Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by sirius,
14. Mai 2012
Daher kommt das immer. Ok in Delphi 7 wird im Constructor BeginThread immer CREATE_SUSPENDED aufgerufen und dann gibt es AfterConstruction:
procedure TThread.AfterConstruction;
begin
if not FCreateSuspended then
Resume;
end;
Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by sirius,
14. Mai 2012
Hi brechi,
Das Terminate in den Destructor zu setzen gefällt mir auch.
Aber den geerebten Constructor kannst du auch am Anfang aufrufen. Das ist ein Märchen, dass bei TThread das inherited am Ende des Constructors sitzen muss. Der Thread wird eh erst in der überschriebenen Methode "AfterConstruction" gestartet (sofern createsuspended=false), also erst wenn der komplette Code des...
Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by sirius,
11. Mai 2012
Ui, das ist mir noch nie aufgefallen. Ich verwende das so ständig, rufe aber eben immer ordnungsgemäß terminate auf bevor ich das Objekt zerstöre.
Dann weiß ich auch nicht weiter. Außer dass man das dann sauber programmieren muss. Oder du nimmst halt weiter deine sekündliche Unterbrechung (was ich nie bevorzugen würde). Oder wir ändern dieses sch***** TErminate einfach in virtuell um. So....
Forum: Neuen Beitrag zur Code-Library hinzufügen
Delphi
by sirius,
11. Mai 2012
Hi
Ich habe zwei Anmerkungen?
1. Warum muss der Thread jede Sekunde arbeiten (er stellt ja bei wrTimeOut nur fest ob er terminiert wurde)
2. Machst du einen Fehler weswegen du auf 1. nicht verzichten kannst. Du überschreibst DoTerminate anstatt Terminate. Nimm mal letzteres, dann kannst du auch mit infinite auf dein SimpleEvent warten.
mfg