Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Mein Dienst lässt sich nicht beenden

  Alt 12. Nov 2005, 10:38
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
  Mit Zitat antworten Zitat