当Windows服务进入/从睡眠或休眠模式唤醒时,它们会表现出怎样的行为?

10

我有一个用C#编写的服务,似乎在计算机进入睡眠模式时无法正常关闭。用户需要手动停止和重新启动服务以保持功能。我知道问题出在哪里,但不确定应该在哪里进行修复。Windows服务在进入/退出睡眠和休眠时的行为是怎样的?

1个回答

12

服务如何响应电源事件?实际上,这取决于具体情况

你的服务中,你可以通过处理相关事件来处理休眠/挂起等电源事件。

  protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
  { 
     //do stuff here
  }

4
不要忘记 ServiceBase.CanHandlePowerEvent 必须为 true 才会调用 OnPowerEvent - Marcel N.
太好了,我不知道OnPowerEvent处理程序。这也可以解决我们在服务方面遇到的一些其他问题,例如关机。 - codewario
1
如果我不覆盖重写这个方法,它的默认行为是什么? - Rand Random
覆盖此方法允许您指定在电源事件完成之前服务中发生的情况。这不是必需的,但如果您需要在特定的电源事件完成之前进行任何清理,则可能是必要的。 - codewario
这只是一般处理睡眠/休眠的方法。有没有办法特别识别它是睡眠还是休眠?捕获到的PowerBroadcastStatus值似乎对两种情况都是“挂起”。 - sanrns

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接