jjzjj

RequestAdditionalTime

全部标签

c# - RequestAdditionalTime() 的安全开销是多少?

我有一个Windows服务,它在单独的线程上生成一组子事件,并且只有在所有这些事件都成功完成后才会终止。我事先不知道在收到停止信号后终止事件可能需要多长时间。在OnStop()期间,我每隔一段时间等待该停止信号,并不断请求额外的时间,只要系统愿意授予它即可。基本结构如下:classMyService:ServiceBase{privateCancellationTokenSourcestopAllActivities;privateCountdownEventrunningActivities;protectedoverridevoidOnStart(string[]args){//.

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

我一直在对我用C#.Net3.5编写的Windows服务进行一些广泛的测试。当我重新启动或关闭计算机时,我无法让Windows给我足够的时间让我的服务正常关闭,即使我正在调用应该更新SCM并保持我的服务运行的RequestAdditionalTime()方法。但是,如果我手动停止服务,我的代码可以正常工作。我主要是在WindowsVista和Windows7中测试此代码,在决定在WindowsXp中测试代码时一切正常。有谁知道为什么这个调用在Vista/7中不起作用?我在想我需要某种权限来防止系统关闭,这是我在Xp中默认获得的,但在Vista/7中则没有。