1

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

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

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

它会永远处于待处理状态吗?难道我做错了什么?如果我需要在那里修改某些内容,我也有该服务的代码。

4

1 回答 1

5

难道我做错了什么?

您可以在停止服务后尝试等待:

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

WaitForStatus方法将等待服务达到指定状态或指定超时到期后再返回。

于 2012-05-07T11:06:23.943 回答