为什么我的程序占CPU资源35% 这么多

weixin_49587713 2021-02-13 03:41:20
如何优化 ?程序中有一个线程
...全文
574 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xf_21 2021-04-09
  • 打赏
  • 举报
回复
占用cpu多是因为你用了peekmessage,不是getmessage。用getpessage就好了,不要手动sleep 话说你从不结贴吗?要学会结贴
叶恭介叶恭介 2021-03-05
  • 打赏
  • 举报
回复
引用 3 楼 weixin_49587713 的回复:

while (1)//GetMessage(&msg, NULL, NULL, NULL)
    {
        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
            if (msg.message == WM_QUIT)
                break;
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
        {
            Sleep(1);//加入这句后,程序异常退出了。怎么了
        }
   }
线程里的代码是这个?
weixin_49587713 2021-02-14
  • 打赏
  • 举报
回复

while (1)//GetMessage(&msg, NULL, NULL, NULL)
    {
        if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
            if (msg.message == WM_QUIT)
                break;
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else
        {
            Sleep(1);//加入这句后,程序异常退出了。怎么了
        }
   }
丁劲犇 2021-02-14
  • 打赏
  • 举报
回复
消息Ui保活,不需要这么频繁的。不过sleep后停止,说明是哪里有问题了
zgl7903 2021-02-13
  • 打赏
  • 举报
回复
主要看线程中做什么, 最简单的在线程中 Sleep(1)
an_bachelor 2021-02-13
  • 打赏
  • 举报
回复
如果你不会使用内置的CPU分析组件等特定类型的工具,你可以每次减少一部分代码,查看运行结果

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧