我需要让这两个线程在一个通用列表上不断工作,一个线程应该将项添加到列表中,另一个应该“消耗”这些项目(只需看看它们,做一些需要做的事情,取决于一些项目的属性,然后将其删除)。
注意:我是一个初学者,所以对任何有关如何做到这一点的见解表示赞赏。
我在想2个带有while(1)循环的BackgroundWorkers(当然接受取消),List对象作为Argument传递给两者。
这可能/安全吗?我该怎么做才能保证安全?
(如果您需要更多信息,请在评论中注明,我会对此进行编辑)
谢谢!
答案 0 :(得分:4)
不安全。你需要锁定阅读和写作。这是典型的生产者/消费者问题。
如果您使用的是.NET 4,则可以在此处有效地使用BlockingCollection。