2010-12-01 24 views
1

我有两个线程:如何在多个线程之间传递值

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

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

请告诉我什么是将线程1中的XML数据传递给线程2的最佳方式,因为它是由线程1检索的?

线程1获取XML,然后线程2消耗它。

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

请告诉我,如果有任何其他更好的方法比我使用的。

回答

2

看起来你需要

Producer-Consumer Quequ

+0

查询快速和非常有用的答复。 – 2010-12-01 07:35:13

+0

仅供参考...在该文章中实施生产者 - 消费者模式是不正确的。微软真的需要清除那篇文章。 – 2010-12-01 19:05:18

2

该框架提供

ConcurrentQueue

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

1

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

相关问题