首页 > 解决方案 > 处理/防止非 UWP Win32 应用程序在 Windows 10 中挂起

问题描述

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

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

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

任何帮助都将受到高度赞赏,因为我在这里被困了几天。

提前致谢!

标签: c++windowswin32guiwindows-10-desktop

解决方案


推荐阅读