VC++ MFC 编写的程序,有什么可用的方法自动控制CPU,现在程序一运行,CPU就占用很高

我创建了工作线程,但是CPU占用还是很高,我的想法是能不能在程序里自动控制CPU,比如占用率,不超过30%,哪位仁兄在帮小弟一下,谢谢了!... 我创建 了工作线程, 但是CPU占用还是很高,我的想法是能不能在程序里自动控制CPU,比如占用率,不超过30% , 哪位仁兄在帮小弟一下,谢谢了! 展开
 我来答
百度网友917c7ea
2010-10-18 · TA获得超过374个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:201万
展开全部
你的工作线程式循环执行的吗?
如果是,在非正常情况下用Sleep(1);这样你的cpu一定就下去了。举个例子:
你的线程函数为Thread(LPVOID lpPar);主线程有一个bool型变量m_bRun控制线程中执行的具体语句。将主线程的相关类(class CXXXDlg)的this指针传入工作线程。则:
Thread(LPVOID lpPar)
{
CXXXDlg *pDlg = (CXXXDlg*)lpPar;
while (true)
{
if (pDlg->m_bRun)
{
action;//你计划工作线程中需要做的工作
}
else
{
Sleep(1);
}
}
}

在主线程控制变量m_bRun,在需要执行action的时候将其设置为true,不必要的时候设置为false,这样cpu立马就降了。
如果你程序要求每次循环都要做action,那就不是线程的问题,就要看action里有哪些地方占cpu,如果action是什么编码算法啊,大量数据转换啊,那就要优化这些算法了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式