系统相关
首页 > 系统相关> > 我作为Windows服务运行的C#程序阻止Windows XP进入休眠状态

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

作者:互联网

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

我的问题是,当运行此Windows服务时,无法休眠或待机在Windows XP SP3上运行的计算机.当我将Windows设置为休眠或待机状态时,没有任何反应.然后,在我进入服务管理器并停止服务的那一刻,系统休眠立即开始.

扩展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

标签:windows-services,c,net,hibernation
来源: https://codeday.me/bug/20191024/1917726.html