Hallo,
in der Delphihilfe heißt es im Beispiel:
Delphi-Quellcode:
while not Terminated do begin
**ServiceThread.ProcessRequests(True);
end;
bei Dir jedoch
ServiceThread.ProcessRequests(False);
Habe gerade meine 3einhalb Service durchgeschaut, bei mir heißt's immer
ServiceThread.ProcessRequests(True)
und die verhalten sich (nach meinem Dafürhalten) alle ordentlich. Versuch' es doch bitte mal damit.
Zitat von
Delphihilfe:
VCL-Referenz
ProcessRequests (Methode von TServiceThread)
TServiceThread Methoden Siehe auch
Ermöglicht es Clients, den Dienst aufzurufen, der mit einem bestimmten Thread verknüpft ist.
Delphi-Syntax:
procedure ProcessRequests(WaitForMessage: Boolean);
C++ Syntax:
void __fastcall ProcessRequests(bool WaitForMessage);
Beschreibung
Die Methode ProcessRequests von TServiceThread wird in der Methode Execute aufgerufen, nachdem jede Ausführung der Ereignisbehandlungsroutine für OnExecute eines zugehörigen Dienstes beendet ist. Im Entwicklerhandbuch finden Sie weitere Informationen darüber, wie sich die Dienstausführung durch Abspaltung einzelner Threads für jede Dienstanforderung optimieren läßt.
Verstehe ich das richtig, dass bei ServiceThread.ProcessRequests(False) keine Messages abgearbeitet werden? Wenn dem so ist, warum darf Dein Service die Messages nicht abarbeiten? Wie erfährt er, dass er beendet werden soll oder dass das Betriebssystem herunter gefahren wird?