如何验证Windows服务是否正在运行

我有一个C#应用程序(在嵌入式XP上运行2.0),该应用程序与作为Windows服务实现的“看门狗”进行通信。设备启动时,此服务通常需要一些时间才能启动。我想根据我的代码检查服务是否正在运行。我该怎么做?

回答:

我想这样的事情会起作用:

添加System.ServiceProcess到项目引用中(位于.NET选项卡上)。

using System.ServiceProcess;

ServiceController sc = new ServiceController(SERVICENAME);

switch (sc.Status)

{

case ServiceControllerStatus.Running:

return "Running";

case ServiceControllerStatus.Stopped:

return "Stopped";

case ServiceControllerStatus.Paused:

return "Paused";

case ServiceControllerStatus.StopPending:

return "Stopping";

case ServiceControllerStatus.StartPending:

return "Starting";

default:

return "Status Changing";

}

编辑:还有一种方法sc.WaitforStatus()具有所需的状态和超时,从未使用过,但它可能满足您的需求。

编辑:一旦获得状态,要再次获得状态,您将需要先致电sc.Refresh()

参考:.NET中的ServiceController对象。

以上是 如何验证Windows服务是否正在运行 的全部内容, 来源链接: utcz.com/qa/401154.html

回到顶部