c# - 为什么 RequestAdditionalTime() 方法在 Vista/7 中重启时不起作用?

标签 c# .net windows-7 windows-services windows-vista

我一直在对我用 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/

相关文章:

windows-7 - 对网络驱动器使用 mklink 命令

c++ - 以编程方式检查数字签名

javascript - 防止 Internet Explorer 11 中的过度滚动

c# - 如何更改xml中的根标签名称

c# - 在不使用分析服务的情况下将一组具有离散和连续数据值的数据分割成两组中的一组?

.net - 将 std::time_t 转换为 System::DateTime 的标准符合方式?

c# - 使用 RAW SOAP XML 提交 SOAP Web 服务请求

c# - 删除按钮的文本轮廓

c# - 如何使窗口对 WPF 中的鼠标事件不可见?

c# - 免费的SQL Server存储过程生成器?