Dienste programmieren mit .NET

Aufräumen nicht vergessen

Wird der Rechner heruntergefahren oder stoppen Sie den Dienst über das Dienste-Applet, ruft der Service Control Manager die Methode OnStop() auf. Hier sollte Ihr Code benutzte Ressourcen wieder aufräumen oder relevante Zustände auf der Festplatte speichern, damit Sie beim nächsten Aufruf von OnStart() wieder darauf zurückgreifen können.

In unserem "Beispiel" wäre es nicht unbedingt notwendig, irgendetwas aufzuräumen. Den in OnStart() begonnenen Thread sollten Sie aber trotzdem dezidiert beenden, da das gute Programmierpraxis ist. Einen Thread brechen Sie mit der Methode Abort() des Thread-Objekts ab, und genau das passiert auch in OnStop():

protected override void OnStop()
{
thread.Abort();
}