syn*_*cis 9 .net c# collections jobs
我正在开发一个Windows窗体应用程序(c#),当程序运行时,它创建对象将它们添加到列表中.我必须使用FIFO(先进先出)处理列表中的项目.我想在后台线程中执行此操作,我必须按顺序处理它们,编号1,编号2,编号3等等.一旦项目被添加到列表我想要处理它.所以我必须要检查一下这个清单.
实现这一目标的最佳方法是什么?
我知道blockingcollection做了类似的事情,它等待一个项目在处理之前添加.
我可以使用队列中的单个线程和while(true)并在有任何项目时使用项目吗?
你怎么看?
Jon*_*ter 15
BlockingCollection<T>如果您计划使用后台线程,那么您应该选择.您可以非常轻松地执行while(true)您正在寻找的相同逻辑.
这BlockingCollection<T>给你两个重要的功能
它是线程安全的
当你调用Take()它时,它会阻塞(即等到队列中的某些东西),所以你不必编写任何代码ManualResetEvents等,这是一个很好的简化.