Einzelnen Beitrag anzeigen

Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Fehlermeldung beim Stoppen eines Service

  Alt 4. Dez 2006, 20:48
Mein Gott jetzt hab ichs....

Es fehlt tatsächlich was. Da du keinen eingenen Thread abspaltest, hast du mit deiner Execute Methode natürlich sowas wie eine Endlosschleife, und die Anweisungen an den Service können gar nicht verarbeitet werden.

Du musst in diese Schleife ähnlich wie bei GUI programmen sowas wie Application.ProcessMessages einbauen.

Im Service heist das dann ServiceThread.ProcessRequests(false);

Also:
Delphi-Quellcode:
procedure TService1.ServiceExecute(Sender: TService);
var
  sleepCnt: Integer;
begin
  AllowStop := true;
  stopServ := false;
  sleepCnt := 0;
  while not stopServ do
  begin
    sleep(100);
    inc(sleepCnt);
    if (not stopServ) and (sleepCnt >= 10) then
    begin
      sleepCnt := 0;
      beep;
    end;
    ServiceThread.ProcessRequests(false);
  end;
end;
Dann sollte es gehen.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat