处理/防止非 UWP Win32 应用程序在 Windows 10 中挂起

iqs*_*tic 6 c++ windows win32gui windows-10-desktop

我有一个用 C++ 编写的旧版 Win32 应用程序,它在系统上持续运行以监控系统健康相关参数。最近,我开始面临应用程序在 Windows 10 上每 2-3 天暂停并变得无响应的问题。经过一番研究,我了解到最近的 Windows 10 版本中引入的一项新功能,该功能会主动查找未被主动使用的进程并挂起这些进程以节省 CPU 和 RAM 等系统资源。虽然我遇到了几篇文章(参考链接之一是这个) 在该状态下,Windows 10 有大约 5-10 秒的等待时间,之后如果用户不主动使用它,它会将进程移至挂起状态。现在,我的应用程序每 30 秒向远程服务器发送一条 UDP 消息,向服务器表明该应用程序正在机器上运行。以下是我的问题:

  1. 有没有办法防止应用程序被挂起,或者有办法将此超时增加到一个相对较大的值,以便应用程序保持活动状态?
  2. 还有其他非基于 UI 的应用程序也在我的系统上运行,它们相对不太活跃,但它们永远不会被挂起,这是否仅适用于基于 UI 的应用程序?
  3. 虽然有一些像这样的引用在您的应用程序中添加特殊处理以捕获来自 Windows 的挂起消息并在您的应用程序中保存必要的状态,但所有这些引用都是基于 C# 的。有人可以指出我对 C++ 的类似参考吗?
  4. 有什么方法可以跟踪 Windows 以某些事件日志或 Windows 日志的形式暂停应用程序的时间和原因?

附加信息:我尝试使用资源监视器和进程资源管理器手动暂停/恢复应用程序,因为应用程序不会立即暂停以了解行为,但没有运气。我有一种感觉,他应该在应用程序本身中处理,因为当前没有处理应用程序变得无响应。

由于我被困在这里几天,因此非常感谢任何帮助。

提前致谢!