C# ServiceController.WaitForStatus是设置状态还是仅等待?
我第一次使用了C# ServiceController.WaitForStatus是设置状态还是仅等待?,c#,.net,windows-services,.net-4.6,servicecontroller,C#,.net,Windows Services,.net 4.6,Servicecontroller,我第一次使用了ServiceController.WaitForStatus,以限制在尝试启动无法启动的服务时所浪费的时间。我的假设是这样使用它: var sc = new ServiceController(_monitoredService); var seconds = _startWaitTimeout / 1000; sc.Start(); sc.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 0, s
ServiceController.WaitForStatus
,以限制在尝试启动无法启动的服务时所浪费的时间。我的假设是这样使用它:
var sc = new ServiceController(_monitoredService);
var seconds = _startWaitTimeout / 1000;
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 0, seconds));
if (sc.Status != ServiceControllerStatus.Running)
{
_logger.Warn($"'{_monitoredService}' did not start within {seconds} seconds.");
}
然后,我肩上的一个小魔鬼建议,WaitForStatus
可能会在等待前自行设置状态。是吗?不是
使用WaitForStatus暂停应用程序的处理,直到服务达到所需状态
总之,它只会暂停调用线程并轮询状态(如文档中所述),每250毫秒轮询一次,直到达到服务状态或超时。。来自文档:使用WaitForStatus暂停应用程序的处理,直到服务达到所需状态。“就这些了!”马卡捷夫回答了这个问题,我就接受了。否决票是怎么回事,小家伙?我不知道required status是指调用
WaitForStatus
中的状态,还是先前状态设置调用中的状态。