除了用多线程,还有别的方法吗?

解决方案 »

  1.   

    不知道是什么样的循环,如果是纯粹不让cpu满,可以用 thread.sleep 几毫秒,副作用是那个循环比较慢。
      

  2.   

    http://blog.csdn.net/wuyazhe/archive/2007/09/04/1771470.aspx我这里有个用信号量的例子,你这里也可以用这个类。
      

  3.   

    你的问题就不清楚,如果你一个业务只能用while(true)这样的语句来做的话,那就和线程无关,而你应该用多线程而没有用,也达不到业务需求。
    如果是单线程程序,通过让thread.sleep几毫秒是可以解决CPU100%问题的。
    如果是多线程,你就要找原因,譬如线程生成过多,线程生命期过短,等等,都会造成。
    这时譬如改善单个线程的CPU占用率,或者采用线城池技术都回针对不同问题,解决一些。
      

  4.   

    不知道你的循环要干什么?单纯不让cpu 100% 可以sleep
      

  5.   

    sleep吧.虽然程序可能会稍稍慢点
      速度跟CPU占用率是成正比的
      

  6.   

    异步(每次操作完后就Sleep一下)呵呵...
      

  7.   

    最简单的是在循环里面加Application.DoEvents();将控制权交给系统,for   (int   i   =   0;   i   <   dt.Rows.Count;   i++) 

        Application.DoEvents();     //其他代码;     this.text   =   i; 
    }满足不是很严密的需求参考。
      

  8.   

    cpu就是用来用的,100%就100%呗,如果想对其他程序减少影响,可以降低运算线程的优先级