Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#55

AW: Code vom Thread in einen Timer umziehen?

  Alt 25. Okt 2016, 22:17
Ich hatte noch das FreeOnTerminate vergessen, so dass der Thread nach Beendigung nicht freigegeben wurde:

Delphi-Quellcode:
constructor TArbeiterThread.Create(aMinValue, aMaxValue: Integer; aProgressInitEvent: TProgressInitEvent;
  aProgressStepEvent: TProgressStepEvent; aProgressCloseEvent: TProgressCloseEvent);
begin
  fMinValue := aMinValue;
  fMaxValue := aMaxValue;
  fProgressInitEvent := aProgressInitEvent;
  fProgressStepEvent := aProgressStepEvent;
  fProgressCloseEvent := aProgressCloseEvent;

  FreeOnTerminate := True; // <------------

  inherited Create(False);
end;

Ja, ein Sleep(1 oder höher) im Thread gibt anderen Prozessen auch mal die Möglichkeit, etwas auszuführen.
Sleep(0) prinzipiell auch, aber ich hatte dennoch schon den Effekt, dass die CPU mit 100% weiter lief.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat