如何在多个线程之间进行值传输

时间:2010-12-01 07:28:05

标签: c# multithreading

我有两个主题:

线程1从循环中的Web服务获取XML。

线程2正在解析线程1提取的XML并在UI中显示它。

请告诉我将线程1中的XML数据从线程1传递到线程2的最佳方法是什么?

线程1正在获取XML,然后线程2正在使用它。

为此,我创建了一个循环链表,线程1将其XML放在链表中,线程2获取XML并将其从列表中删除,并且工作正常。

请告诉我是否有比我正在使用的更好的方法。

3 个答案:

答案 0 :(得分:2)

看起来你需要

Producer-Consumer Quequ

答案 1 :(得分:2)

框架提供

  

ConcurrentQueue

使用.NET 4.0。它应该在消费者和生产者之间实现一个队列,而不需要任何手动同步。

答案 2 :(得分:1)

如果您使用的是.Net 4.0,则可以使用BlockingCollection,这是一个生产者 - 消费者队列,它允许消费者等待生产者的更多工作,而无需您管理交互。