c++ - 如何在 Windows 上限制进程的 CPU 使用率?

标签 c++ window cpu-usage

我需要将应用程序的 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/

相关文章:

c# - 在 WPF 中引用事件窗口?

c - 查找文件操作的 CPU 使用率

java - 如何访问 Netbeans 中的调用计数?

c++ - 插入sql数据库后无法检索身份字段

c++ - C++ 中的 this->data 和 (*this).data 有什么区别

c++ - 2 名游戏玩家之间的行为不一致

c# - 如何捕捉结束调整窗口?

c++ - 为使用函数对象而编写的类也可以使用 lambda 或 std::function 类型吗?

C++ lambda自传递异常

c# - TCP 服务器 CPU 使用率高