Registriert seit: 23. Jan 2008
3.686 Beiträge
Delphi 2007 Enterprise
|
AW: TThread Suspend und Resume
14. Sep 2016, 22:12
Da auch bei einem Sleep(1) ein "wartender" Thread zu 0% CPU Auslastung führt, habe ich das bisher immer genommen. Bei mir sehen die Execute-Methoden meist so aus:
Delphi-Quellcode:
procedure TMyThread.Execute;
var
...
begin
while not Terminated do
begin
try
try
if FWaiting then
Sleep(1)
else
begin
// Eigentlicher Thread-Code
// (setzt ggf. FWaiting selbst auf true wenn die Aufgabe durch ist,
// da ein Bool aber atomar ist, kann dies auch von aussen passieren)
end;
except
on ...
end;
finally
...
end;
end;
end;
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
|