c++ - 使程序在无限循环中等待时使用更少的 CPU

标签 c++ process cpu-usage

设置:我在 c++ 中有这个程序:

#include <windows.h>
using namespace std;
int main(){
    HWND window;
    AllocConsole();
    window = FindWindowA("ConsoleWindowClass", NULL);
    ShowWindow(window,0);
while (1){  
if (GetKeyState('A'))
        {
    system("start love.mp3");
    return 0;
        }
    }
return 0;
}

因此程序作为一个进程运行并等待直到按键 A 被按下。然后它播放 love.mp3 文件 :)

但是,当程序等待时,它会占用 25% 的 CPU 使用率。

问题:有没有办法减少这种情况,使程序不会消耗太多 CPU?

最佳答案

你的程序犯了busy-waiting .

尝试使用 SetWindowsHookEx 挂接您的键盘调用.

关于c++ - 使程序在无限循环中等待时使用更少的 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990129/

相关文章:

c++ - 竞赛编程头文件

c++ - 为 C 和 C++ 安装 MessagePack 实现时出现链接器错误

c++ - 在 CLion 中默认运行谷歌测试时出错

linux - 如何获取相关进程的CPU使用率?

centos - 启动 pycharm 时 CentOS 6.6 中 CPU 利用率异常飙升

在 Windows 下使用的 C++ XML 库

c# - 我正在尝试使用以下代码片段在 C# 中运行 R 脚本。但是输出会重复

java - 最小化除我自己的程序以外的所有其他应用程序

java - 我如何知道哪些进程正在使用 Windows 中 Java 下的文件?

c# - 当前进程的性能计数器 CPU 使用率超过 100