工作线程在循环等待时cpu占有率高使用什么函数可以处理系统事件?

解决方案 »

  1.   


    搭配“Sleep”,为什么呢?直接用WaitForSingleObject就行了。
      

  2.   

    不需要线程同步一类的直接在你的 循环体内 Sleep就可以,我一般就Sleep(3);这个足够了
      

  3.   

    让工作线程Sleep(xxx),醒来后再看要不要干什么,没事再Sleep。你的cpu就可以干别的了。
      

  4.   

    在线程里来个SLEEP就可以了,这个问题我碰到过.
      

  5.   

    关于Sleep这个命令,其实是当前线程放弃CPU使用权一段时间,但是这个时间并不是设多小都有效的
    比如说一般的32位机,Sleep的最小有效时间是15ms左右
    也就是说你Sleep(1),Sleep(3)和Sleep(15)是基本没什么差别的
    当然这个最小有效时间和CPU的频率以及操作系统的位数都有关系一般在线程的循环体里加上Sleep(1)就可以了,如果你的这个线程使用频率不是很高,可以设定一个检测条件,在不用的时候Suspend,然后由外界触发Resume,这样可以更节省一些CPU的使用资源