Hallo sakura,
Zitat von
sakura:
Möchtest Du den Dienst steuerbar haben, dann darfst Du OnExecute nicht nutzen. Du musst dann in OnStart einen Thread starten, welchen Du dann in OnPause, OnContinue und OnStop steuern kannst.
so zwingend, wie du das jetzt darstellst ist das aber nicht, sonst würde mein WatchDog Service nicht funktionieren. Es kommt wie immer darauf an, dass man die event handler auch richtig verwendet. Noch ein Ausschnitt aus meinem WatchDog Service:
Delphi-Quellcode:
procedure TObserver.ServiceExecute(Sender: TService);
begin
Log('Guardian executing');
while Active do
begin
Sleep(1000);
if Abs(Now - LastCheck) > Interval then
begin
CheckTargetService(ServiceName);
LastCheck := Now;
end;
ServiceThread.ProcessRequests(false);
end;
end;
Freundliche Grüße vom marabu