2010-09-22 6 views
0

Comment vérifier si un service Windows est arrêté ou en cours d'exécution et attendre jusqu'à ce qu'il soit dans cet état?Comment vérifier si un service Windows est arrêté ou en cours d'exécution et attendre jusqu'à ce qu'il soit dans cet état?

Dim s As New ServiceController("Aservice") 
    s.Refresh() 
    If s.Status = ServiceControllerStatus.Running Then 
     s.Stop() 
    End If 
    s.Refresh() 

Le problème est que je veux attendre dans cette fonction jusqu'à ce que le service est dans cet état ... Comment puis-je faire cela? tnx!

Répondre

1

Vous pouvez ajouter un peu de temps en boucle: « Et si ça ne s'arrête pas »

Dim MaxWait = 10 
While Not s.Status = ServiceControllerStatus.Stopped 
    System.Threading.Thread.Sleep(100) 
    MaxWait = MaxWait - 1 
    If MaxWait < 1 Then Break 
End While 

Mais vous devez penser à

+0

Oui, et si un mettre un compteur de 99 fois ... il est posibile de raech ce qui compte ... – Adrian

1
Dim s As New ServiceController("Aservice") 

While s.Status <> ServiceControllerStatus.WhatEverState 
    Thread.Sleep(1000) 
    s.Refresh() 
End While