我只是了解了queues in .NET ,我有几个问题。
假设我正在构建一个下载页面HTML然后处理它的应用程序。以下是我希望它如何运作:
如何在没有竞争条件的情况下实施这样的场景?
另外,如上所述,在队列和线程之间传递信息的最佳方法是什么?
你能给我一些示例代码吗?
谢谢!
答案 0 :(得分:1)
我建议BlockingCollection<T>
。它代表多线程中常见的“生产者/消费者队列”。
答案 1 :(得分:0)
有两种方式可以想到。
第一种方法是使用一个实现锁定的集合来产生线程安全的一致性(如其他地方提到的BlockingCollection)。
第二种方法是使用一个不可变的集合(例如Eric {http://blogs.msdn.com/b/ericlippert/archive/2007/11/13/immutability-in-c-part-one-kinds-of-immutability.aspx中描述的那些集合),它首先避免了线程锁定和竞争条件的大部分麻烦,并使得剩下的东西永远留在了通常会更加明显。