我用C#编写的Windows服务。它启动两个线程,一个是池化Web服务,第二个是在Monitor对象上等待新作业到达。除此之外,主线程使用NetNamedPipeBinding
充当WCF服务主机。它允许客户端应用程序注册回调,然后发回通知。
我遇到的问题是,当这个Windows服务运行时,我无法在Windows XP,SP3上运行的计算机进行休眠或待机。当我将Windows设置为休眠或待机状态时,没有任何反应。然后,在我转到Service Manager并停止服务的那一刻,系统休眠立即开始。
扩展ServiceBase
的服务类具有CanHandlePowerEvent,CanPauseAndContinue等属性设置为true ...这没有任何区别。
问题是:什么可以阻止休眠/待机进行?我应该注意什么,以避免它?
答案 0 :(得分:5)
您只需提及将CanHandlePowerEvent
属性设置为true。我假设如果状态为OnPowerEvent
,您还必须处理true
并返回QuerySuspend
,并且可能会阻止您正在执行的操作,但我不知道详情这个。
此处有更多详情: