停止服务

时间:2012-05-07 11:02:33

标签: c# windows-services

我正在尝试使用我制作的控制台程序停止正在运行的服务。 这是我的代码:

ServiceController sc = new ServiceController(ServiceName, ".");
sc.Stop();

然后我等待服务状态,变成Stopped,但这种情况永远不会发生。 它似乎有StopPending,从不转到Stopped。 当我检查Services.msc时,它被列为已停止,并且在任务管理器中,该过程已经消失。

它会永远待在待定状态吗?难道我做错了什么? 如果我需要修改那里的东西,我也有服务的代码。

1 个答案:

答案 0 :(得分:5)

  

我做错了吗?

停止服务后,您可以尝试waiting

sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(25));

WaitForStatus方法将等待服务达到指定状态,或等待指定的超时时间到期。