Je rencontre un problème que je ne peux pas résoudre concernant un service Windows que j'ai écrit en C#. Ce que j'essaye de faire est d'attendre une période spécifique pour qu'un processus d'enfant se termine avant que je suis forcé de le tuer et arrêter le service. J'ai défini mon délai d'attente de 5 à 15 secondes et mon service attend la durée appropriée, puis tue l'enfant et s'arrête lorsque je l'arrête via la fenêtre de service mmc. Cependant, si j'éteins l'ordinateur, mon service est ébloui avant qu'il ne puisse attendre et s'arrêter correctement. J'ai lu que Windows permet un délai d'attente de 30 secondes pour qu'un service s'arrête avant qu'il ne l'emporte. Mon code s'exécute en moins de 30 secondes, le maximum est d'environ 20 secondes, selon ce que je définis pour le délai.Obliger les fenêtres à attendre l'arrêt d'un service lors de la fermeture
J'ai essayé d'utiliser la fonction SetServiceStatus() dans l'API win32 mais cela n'a pas changé la fonction du code. J'ai vérifié que l'appel de fonction réussit. Existe-t-il un autre moyen de forcer Windows à attendre que mon service se ferme correctement? Je le teste dans Windows 7 x86, et Windows Vista Sp1 x86. OnStart et OnSTop sont hérités d'une classe de base qui fait un peu pour vous.
+1: * De toute évidence, la solution consiste à réduire le temps d'arrêt du service. Soooo nombreuses applications ignorent l'importance de cela et. –