繁体   English   中英

我作为Windows服务运行的C#程序阻止Windows XP进入休眠状态

[英]My C# program running as Windows Service is blocking Windows XP from hibernation

我有用C#编写的Windows服务。 它启动两个线程,一个是池化Web服务,第二个是在Monitor对象上等待新作业到达。 除此之外,主线程使用NetNamedPipeBinding充当WCF服务主机。 它允许客户端应用程序注册回调,然后发回通知。

我遇到的问题是,当这个Windows服务运行时,我无法休眠或待机在Windows XP,SP3上运行的计算机。 当我将Windows设置为休眠或待机状态时,没有任何反应。 然后,在我转到Service Manager并停止服务的那一刻,系统休眠立即开始。

扩展ServiceBase的服务类具有CanHandlePowerEvent,CanPauseAndContinue等属性设置为true ...这没有任何区别。

问题是:什么可以阻止休眠/待机进行? 我应该注意什么来避免它?

您只提到将CanHandlePowerEvent属性设置为true。 我假设您还必须处理OnPowerEvent并在状态为QuerySuspend返回true ,并且可能会阻止您正在执行的任何操作,但我不知道其中的详细信息。

更多细节在这里:

http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.onpowerevent%28v=VS.80%29.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM