循环继续处理

时间:2013-10-25 04:25:47

标签: c#-4.0

在我的应用程序中,我有持续运行的While(True){}循环。 这需要100%的CPU使用率。 即使这个while循环也是从多个线程调用来运行一些特定的函数,所以它强制CPU以100%的速度运行。

我根据某些条件设置了一些睡眠状态。如果收集为空,则需要睡眠,但如果收集已满,则不会减少CPU的使用量。

While(true)
{
if(condition)
Thread.sleep(30);//Under some condition
//Process data on collection
//Set sleep condition
}

如何控制此循环并允许其他进程和线程工作。

1 个答案:

答案 0 :(得分:0)

你想在if:

之后放睡
while(true) 
{
   if (condition) {
      //treat data
   }
   sleep(30)
}

现在你只是在列表为空时才睡觉,当它已满时你回到活动等待,因此100%CPU