我需要将应用程序的 CPU 使用率控制在一定限度内。我的应用程序将在 Win XP、Vista、Win7 和 Windows 8 上运行。
我尝试实现获取当前进程的 CPU 使用率并使用 Sleep() 方法。(我使用 API GetProcessTimes 和 GetSystemTimes)
伪代码:
for(;;)
{
//Get the current process's CPU Usage
int cpuUsage = CalculateCPUUsage();
if(cpuUsage > 50)
Sleep(10)
else
{
//Project implementation code
}
}
问题:
我能否编写一个应用程序来监视进程的 CPU 使用率,并在 CPU 达到允许的限制时停止进程并继续运行。
预先感谢您的帮助。
最佳答案
如果你只是想给进程一个较低的优先级以便对其他线程更好,你可以使用 SetThreadPriority 设置它的优先级,例如:
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
关于c++ - 如何在 Windows 上限制进程的 CPU 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12981350/