ServiceController.WaitForStatus是设置状态还是只是等待?

时间:2016-10-06 10:52:13

标签: 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, seconds));
if (sc.Status != ServiceControllerStatus.Running)
{
    _logger.Warn($"'{_monitoredService}' did not start within {seconds} seconds.");
}

然后我肩膀上的一个小恶魔建议WaitForStatus可以自行尝试在等待之前设置状态。是吗?

1 个答案:

答案 0 :(得分:1)

没有

From MSDN Documentations: 使用WaitForStatus暂停应用程序的处理,直到服务达到所需状态。

多数情况下,它只会暂停调用线程并轮询状态 - 如文档中所述 - 每隔250毫秒,直到达到服务状态或超时。