Services nur zu einem Zeitfenster den Stop zulassen
7. Mär 2007, 18:28
Hallo,
ich hab hier einen kleinen Service, der nur zu einem bestimmten
Zeitfenster beendet werden darf, dh. ich möchte nur dann den
Stop über den Dienstemanager zulassen, wenn es wirklich geht und
der Dienst sich gefahrlos beenden kann.
Sollte dies momenten nicht möglich sein, dann sollte der Dienst
sich nicht beeenden, aber wenigstens versuchen seine Tätigkeit zu
beenden um bei einem 2. Stop-Aufruf für das Ende vorbereitet zu sein.
Dienst startet
- wartet auf Zeitpunkt (kann beendet werden)
- Zeitpunkt eingetroffen, Haupttätigkeit ausführen (kann nicht beendet werden)
- Haupttätigkeit ausführen + 1. Stopsignal (versucht sein Tätigkeit zu beenden)
- Haupttätigkeit ausführen + 2. Stopsignal (beendet wenn möglich)
- Dienst wartet auf neuen Zeitpunkt (wenn nicht gestoppt)
Das Problem ist folgendes:
Wenn ich das 1. mal Stop drücke, so setze ich im Stop-Event des
Dienstes die Variable Stopped auf False. Der Dienstemanager gibt
dann eine Fehlermeldung zurück. Versuche ich gleich darauf noch
einmal den Dienst zu beenden und der Dienst ist immer noch nicht
dazu bereit, dann erscheint wieder eine Fehlermeldung, aber der
Dienst ist trotzdem beendet. Wie kann ich dies verhindern
Gruss Gremlin.
|