3

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

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

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

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

4

1 回答 1

5

您只提到您将CanHandlePowerEvent属性设置为true。我假设如果状态为,您还必须处理OnPowerEvent并返回,并且可能会停止您正在做的任何事情,尽管我不知道这方面的细节。trueQuerySuspend

更多细节在这里:

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

于 2010-05-16T13:46:29.867 回答