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

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

加上Thread.Sleep(100);

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

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

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

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

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

在循环里加上thread.Sleep()

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