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