停止服务

Nic*_*lai 1 c# windows-services

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

ServiceController sc = new ServiceController(ServiceName, ".");
sc.Stop();
Run Code Online (Sandbox Code Playgroud)

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

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

Dar*_*rov 5

难道我做错了什么?

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

sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(25));
Run Code Online (Sandbox Code Playgroud)

WaitForStatus方法将等待服务达到指定的状态或指定的超时在返回之前到期.