我正在使用以下函数来停止我的 Windows 服务(超时):
public int StopService()
{
ServiceController service = new ServiceController(serviceName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
return 1;
}
catch (Exception ex)
{
logger.Log(LoggingLevel.Error,
this.GetType().Name + ":" + MethodBase.GetCurrentMethod().Name,
string.Format("{0}", ex.Message));
return -1;
}
}
我检查服务的状态。如果不是,ServiceControllerStatus.Stopped
我调用这个函数。我已经测试并且当服务器的状态为Running或Stopped时程序可以工作。但是我想知道当状态为其他状态时会发生什么,例如StopPending,StartPending等。如果我告诉我的服务在状态为上述状态之一时停止,Stop 命令是否仍能完成其工作?