如何验证Windows服务是否已停止或正在运行并等待它处于此状态?

时间:2010-09-22 08:44:31

标签: .net visual-studio windows-services

如何验证Windows服务是停止还是正在运行 并等到它处于这种状态?

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

问题是我想在此功能中等待服务处于该状态... 我怎样才能做到这一点? TNX!

2 个答案:

答案 0 :(得分:1)

Dim s As New ServiceController("Aservice")

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

答案 1 :(得分:1)

你可以添加一点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

但你必须考虑“如果不停止会怎么样?”