我第一次使用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
可以自行尝试在等待之前设置状态。是吗?
答案 0 :(得分:1)
没有
From MSDN Documentations: 使用WaitForStatus暂停应用程序的处理,直到服务达到所需状态。
多数情况下,它只会暂停调用线程并轮询状态 - 如文档中所述 - 每隔250毫秒,直到达到服务状态或超时。