开发者

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

I have Windows Service written in C#. It starts two threads, one is pooling a Web Service, second is waiting on a Monitor object for a new job to arrive. Besides that, the main thread acts as a WCF service host using NetNamedPipeBinding. It lets the client application to register a callback and then sends notifications back.

The problem I have is that when this Windows Service is running, I cannot hibernate or Standby my computer which is running on Windows XP, SP3. When I set Windows to hibernate or standby, nothing happens. Then, at the moment when I go to Service Manager and stop the service, the system hibernation starts immediately.

The service class extending the ServiceBase has properties like CanHandlePowerEvent, CanPauseAndContinue, etc. set to true开发者_StackOverflow... That didn't make any difference.

The question is: what can be blocking the Hibernation/Standby from proceeding? What should I take care about to avoid it?


You only mention that you set the CanHandlePowerEvent property to true. I assume that you'll also have to handle the OnPowerEvent and return true if the status is QuerySuspend and also probably stop anything you're doing, though I don't know the details of this.

More details here:

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜