Zitat von
Angel4585:
versuch mal den Teil auszulassen um zu schauen obs generell funktioniert
hmm... genau wie ichs vermutet habe...
Delphi-Quellcode:
while not terminated do
begin
ServiceThread.ProcessRequests(False);
Sleep(500); // halbe sek. warten
end;
funktioniert einwandfrei... beendet immer korrekt
aaaaber:
Delphi-Quellcode:
while not terminated do
begin
ServiceThread.ProcessRequests(False);
Sleep(15000); // 15 sek. warten
end;
beendet nie korrekt...
Das bedeutet: Mein Dienst beendet korrekt, wenn er im gegebenen Zeitraum (von windows festgelegtes timeout) "ServiceThread.ProcessRequests" passiert, ansonsten schmiert er sozusagen ab!
Nun jetzt wissen wir wo das Problem ist...
aber wie löse ich das nun...
Ich will ja die Aktionen noch beenden bevor der dienst sich verabschiedet... kann ich nicht sagen: Hey, du olles System warte gefälligst bis mein dienst korrekt heruntergefahren wurde...