换句话说,正在运行的应用程序有没有办法知道计算机正在进入睡眠模式?
答案1
Windows 确实如此。请参阅https://docs.microsoft.com/en-us/windows/desktop/power/power-management-portal。
应用程序甚至可以通知系统不应进入睡眠或休眠状态,因为应用程序很忙 - 请参阅 API SetThreadExecutionState
。
答案2
Windows 将发送所有应用程序 WM_POWERBROADCAST 消息。
应用程序将在其消息泵中接收该消息,然后知道计算机正在进入低功耗状态。
系统允许应用程序大约两秒钟来处理此通知。如果应用程序在其时间分配到期后仍在执行操作,系统可能会中断该应用程序。