C# Windows服务OnPowerEvent
我正在尝试实现一个windows服务,该服务在系统进入待机模式(睡眠)时发送消息。我的测试机操作系统是Windows8 pro。该服务已覆盖CanHandlePowerEvents=true和OnPowerEvent,并且确实接收电源事件 我遇到的问题是:OnPowerEvent从未收到QuerySuspend消息。然而,在计算机进入挂起之前,它确实接收到挂起消息,但操作系统并不等待OnPowerEvent方法完成,它只是进入挂起模式,然后在恢复之后,OnPowerEvent方法继续执行 通过互联网发送消息可能需要1-2秒,所以它总是在计算机恢复后发送,而不是在进入暂停模式之前发送,因为它应该工作C# Windows服务OnPowerEvent,c#,windows,service,sleep,suspend,C#,Windows,Service,Sleep,Suspend,我正在尝试实现一个windows服务,该服务在系统进入待机模式(睡眠)时发送消息。我的测试机操作系统是Windows8 pro。该服务已覆盖CanHandlePowerEvents=true和OnPowerEvent,并且确实接收电源事件 我遇到的问题是:OnPowerEvent从未收到QuerySuspend消息。然而,在计算机进入挂起之前,它确实接收到挂起消息,但操作系统并不等待OnPowerEvent方法完成,它只是进入挂起模式,然后在恢复之后,OnPowerEvent方法继续执行 通过互
任何人都知道如何解决这个问题吗?在Vista和更高版本中,应用程序有两秒钟的时间来完成PBT_APMSUSPEND事件触发的任何操作。此设置不可配置 当应用程序收到系统即将进入睡眠的通知时,它应该快速执行任何必要的操作并返回消息循环。在超时前处理此消息时,系统允许每个应用程序最多两秒钟
OnPowerEvent以异步方式运行。无论如何,您都无法延迟关机。如果你不去考虑这个想法,你就不能把它变成现实。