Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ServiceController.WaitForStatus是设置状态还是仅等待?_C#_.net_Windows Services_.net 4.6_Servicecontroller - Fatal编程技术网

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
中的状态,还是先前状态设置调用中的状态。