3

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它在等待之前尝试设置状态。可以?

4

1 回答 1

3

不。

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

就是这样,它只暂停调用线程并轮询状态 - 如文档中所述 - 每大约 250 毫秒,直到达到服务状态或超时。

于 2016-10-06T11:39:08.467 回答