我们在夜间使用员工的桌面进行 CPU 密集型模拟。台式机运行 Windows - 通常是 Windows XP。员工无需注销,只需锁定桌面、关闭显示器即可离开。

每个员工都有一个配置文件,他可以编辑该文件来指定他最有可能不在办公室的时间。当那时到来时,后台程序从服务器获取用于模拟的数据,产生工作进程,监视它们,获取结果并将它们发送到服务器。当员工指定的时间过去后,模拟就会停止,这样就不会干扰正常的桌面使用。

问题是模拟会消耗大量内存,因此当工作进程运行时,它们会强制其他程序进入交换文件。因此,当员工来时,他留下的所有程序都变得迟缓且缓慢,直到他将它们一一打开,以便将它们取消交换。

有没有办法让程序在停止模拟时强制其他程序退出交换文件,以便它们再次顺利运行?

有帮助吗?

解决方案

循环遍历系统和用户进程,从使用最多内存的进程(除了后台应用程序)或员工使用最多的进程开始,并向该进程发送 WM_ACTIVATEAPP 信息。这应该与“单击”任务栏中所述进程的应用程序窗口图标具有相同的效果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top