急死人了!!!!现在程序中用到一个线程,它必须在程序运行时使用(除非该程序关闭)。
但现在一运行程序,它对CPU资源占用立刻升了50%,有什么方法可以降低
线程对CPU的占用率,条件是这个线程不能挂起,一直是在运行状态下的。
高分求解!!!

解决方案 »

  1.   

    sleep不起作用。如何降低线程的优先级,请赐教!实际上程序里也就这一个线程,其余线程是用了过后就释放了资源的。
      

  2.   

    TO:yjs_lh
        降低优先级没用,我的优先级已是Normal,还有什么办法???请赐教!!!
      

  3.   

    很多人回答过了阿,降低优先级,还有在线程里面加上Sleep(1)。还不行?Sleep(100)?Sleep(5000)。另,如果整个系统就只有你的程序在运行,或者虽然还有几个其它应用但都很简单不耗多少CPU,降低优先级当然没多大区别。
      

  4.   

    你的线程是做什么的
    我试过这样的
      while true do;CPU占用率是100%.
    等待事件不能用循环等待,而要用信号灯、互斥等待。
      

  5.   

    TO:madot
       我的线程是用while true do做的,可以说明一下用信号灯、互斥如何做吗?我对线程不是很熟。
      

  6.   

    你的 while true do 一定是在不停地判断某个条件,当它满足时就作一些事情,将某个事件作为一个信号,线城外部条件满足时,设置某个信号,然后在线城中调用waitforsingleObject(信号被设置时,waitforsingerObject返回),就这样,参见API waitforsignleObject和相关的帮助
      

  7.   

    DQQ (在此一方):简单地加上个Sleep应该足够解决问题了!至于信号灯什么的,并不是专属于线程的内容。看看帮助也没什么太难的。像很多人问过的阻止程序多次运行的问题就用到了互斥,TCanvas.Lock方法使用了临界检测、、、、、、