hcli168
waesaeasea
采纳率15.6%
2018-01-15 16:37 阅读 4.3k

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

5

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2018-01-15 17:20

    加上Thread.Sleep(100);

    点赞 3 评论 复制链接分享
  • qaj_qaj qaj_qaj 2018-01-16 02:55

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

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

    点赞 1 评论 复制链接分享
  • xiongxiongmi123 疯狂的疯 2018-01-16 01:55

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

    点赞 评论 复制链接分享
  • Orangouse orangouse 2018-01-24 07:08

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

    点赞 评论 复制链接分享
  • sunnyrain19910520 sunnyrain19910520 2018-01-24 08:36

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

    点赞 评论 复制链接分享
  • qq_31462375 Hannahw1993 2018-01-26 01:53

    在循环里加上thread.Sleep()

    点赞 评论 复制链接分享
  • qq_32526713 叫我陛下 2018-02-06 05:37

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

    点赞 评论 复制链接分享

相关推荐