naja, bei dir ist jedenfalls gewährleistet, dass die messages immer abgefangen werden, mit ServiceThread.ProcessRequests(True);.
Dadurch kann bei dir ein solches Problem ja gar nicht bestehen.
Was hälts du den von meiner Thread Variante`?
Delphi-Quellcode:
while not terminated do
begin
if dienststoppen then
begin
TerminateThread(...);
TerminateThread(...);
TerminateThread(...);
end;
ServiceThread.ProcessRequests(False);
Sleep(500); // halbe sek. warten
end;
eigentlich ähnlich wie deine on Timer variante...
na?