c# 线程CPU占用率高的问题 5C

我写了一个死循环当满足条件就跳出,然后用线程开始这个循环,但是一启动线程CPU占用就很高,即使死循环里面什么代码都没有。请问怎么解决这个问题,用计时器的话CPU占用就很低,但是用计时器键盘钩子经常掉。一会就提示键盘钩子线程退出,无响应。请问C#线程里面死循环怎么写CPU占用率低?

7个回答

加上Thread.Sleep(100);

showbo
支付宝加好友偷能量挖,胡杨等着我的招呼 楼猪肯定直接while(true){}....了。。都不暂停下的
接近 3 年之前 回复

用while(true)循环时候每次循环期间必须加Thread.Sleep(),否则会因为无法切换线程导致CPU高占用,以及其他线程锁死

另外这个工作不要放在UI线程上,要用Thread,BackgroundWorker或者Task来做。

现在的CPU执行效率很高,while 方法如果没有限制 瞬间会执行几万条。图片说明,具体可以看下图,6s执行了百万次。

线程while循环最后一句加一句 Thread.Yield();

在循环中,每次执行的时候都需要thread。sleep(t),可以自己设置1或100都可以,不然cup会暴涨界面会卡死的

在循环里加上thread.Sleep()

thread.Sleep(100)
写在循环中,给线程休眠,还有就是优化你的代码。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐