Как проверить, остановлена ​​или запущена служба Windows, и подождать, пока она не окажется в этом состоянии? - PullRequest
0 голосов
/ 22 сентября 2010

Как проверить, остановлена ​​или запущена служба Windows, и подождать, пока она не перейдет в это состояние?

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

Проблема заключается в том, что я хочу подождать в этой функции, пока служба не окажется в этом состоянии.... Как я могу это сделать?TNX!

Ответы [ 2 ]

1 голос
/ 22 сентября 2010

Вы можете добавить небольшой цикл while:

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

Но вы должны подумать: «Что, если это не остановит?»

1 голос
/ 22 сентября 2010
Dim s As New ServiceController("Aservice")

While s.Status <> ServiceControllerStatus.WhatEverState
    Thread.Sleep(1000)
    s.Refresh()
End While
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...