Hallo,
hab mal eine kleinen Test gebaut:
Delphi-Quellcode:
procedure TService1.ServiceExecute(Sender: TService);
begin
Timer1.Interval:=10000;
Timer1.Enabled:=true;
while not Terminated do
begin
ServiceThread.ProcessRequests(True); //false
//Sleep(10);
end;
Timer1.Enabled:=false;
end;
procedure TService1.Timer1Timer(Sender: TObject);
var t:TStringlist;
begin
t:=TStringlist.Create;
t.LoadFromFile('C:\Test\Servicetext.txt');
t.Add(DateTimeTostr(now));
t.SaveToFile('C:\Test\Servicetext.txt');
t.Free;
end;
Die Variante von himitsu ist OK, belastet die CPU nicht:
ServiceThread.ProcessRequests(false)+Sleep(10)
Lass ich das Sleep weg, so hab ich direkt 50% CPU Dauerauslastung.
Was auch noch geht (ohne Sleep) ist:
ServiceThread.ProcessRequests(true)
Weiß nicht genau, was der Parameter true statt false bewirkt, so ginge es aber scheinbar auch.