我已经在用C#.Net 3.5编写的Windows服务进行了广泛的测试。即使我正在调用RequestAdditionalTime()方法(该方法应更新SCM并使我的服务保持运行),我在重新启动或关闭计算机时都无法使Windows有足够的时间让我的服务正确关闭。但是,如果我手动停止该服务,我的代码将正常运行。我决定在Windows XP和Windows 7中测试此代码后,主要决定一切正常。有谁知道为什么此调用在Vista/7中不起作用?我在想我需要某种权限来阻止系统关闭,默认情况下,我在Xp中获得此权限,但在Vista/7中却没有。
最佳答案
如果系统没有关闭,您的服务可以请求额外的时间并且您的进程不会被终止。
如果系统正在关闭,则您的服务必须关闭。您甚至无法获得服务通常获得的正常 30 秒。关机比以前更有力。
关于c# - 为什么在Vista/7中重新启动RequestAdditionalTime()方法不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30612376/