我的后台线程只设置了优先级---lower, 程序运行的时候,cpu占有率是100%.  但是不影响别的程序.  大家说这样可以不?

解决方案 »

  1.   

    不行,你的后台线程里是否有死循环?
    在循环里加一句sleep(1);应该就可以了。
      

  2.   

    的确是循环
      大家都使用什么?/??  
      我现在sleep(10)  好了
      

  3.   

    哦,我不喜欢死循环,情愿用信号量/事件使得程序不浪费任何CPU资源,勤俭节约嘛!
      

  4.   

    for(;;)
    {
    MSG msg;
    while (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    ....
    }
      

  5.   

    同意mzz_810(毛毛) 。但我更喜欢让线程里每个循环都suspend,等待其它线程唤醒。
      

  6.   

    赞同mzz_810(毛毛) 和 icelight(icelight) 
    不到不得已不要用死循环,要不就向icelight学习
    另外请注意:经过测试 Sleep 函数的精度不高,延时越短误差率越大。 其平均最
    短延时为20ms左右,也就是说你用Sleep(1)或Sleep(10)与用Sleep(20)的效果基本相同。
    可以看出,Sleep是不能用在高精度要求场合的。
      

  7.   

    说到计时精度我都没哲了,请关注
    http://expert.csdn.net/Expert/topic/1313/1313216.xml?temp=5.228823E-02