0
我有2个线程一个增加一个入队和一个做的出列,并做一些处理,队列和While循环
现在有时队列会变成空的,它可能几分钟到一个elment填充它,另一方面,如果数据是本地的,它可以有几百个元素,所以它具有快速添加的本地数据和必须首先下载的数据的混合。
现在,如果我这样做While(queue.count > 0)
{
//lock denque and process
}
,将退出循环,该线程将结束,而另一方面,如果我这样做
While(queue.count > 0 && DownloaderThreadisRunning)
{
//lock denque and process
}
我会因为一个问题
某些对象可能需要处理时间才能使Enqueue线程结束其作业,因此它不会进入循环。
我认为像
While(queue.count > 0)
{
//lock denque and process
if(!DownloaderThreadisRunning && queue.Count==0)
{
break;
}
}
但THRE任何内置的解决方案来管理这样的事情?
多数民众赞成更好地使用它与BlockingCollection,事情更简单,谢谢! – user1590636 2013-03-12 05:27:10