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

Does ServiceController.WaitForStatus set the status or just wait?

我第一次使用 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可能会自己尝试在等待之前设置状态。是吗?

没有

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

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