【发布时间】:2014-09-24 03:52:49
【问题描述】:
我必须编写一个包含四个线程的应用程序:
- 线程生成一些数据(生产者线程);
- 线程从生产者线程获取数据并执行
Action1(data); - 线程从生产者线程获取数据并执行
Action2(data); - 线程从生产者线程获取数据并执行
Action3(data);
如何将相同的数据传递给所有三个消费线程?我仅限于 .NET 3.0 库,即不能使用 ConcurrentQueues 等。
【问题讨论】:
-
从线程继承四次。使用属性或设置器甚至在 ctor 中扩展派生,您可以在 t1 完成时传递数据。然后,将返回的数据从 t1 传递给衍生品后,开始它们的工作。
-
I can't use such things as ConcurrentQueues and so on.然后使用标准字典/队列/列表,但 锁定所有读写 -
@L.B 没那么简单。
BlockingCollection给你的操作是“等你有别的东西给我,再给我”的操作,让这个操作相当不错。重新实现它需要的不仅仅是lock。
标签: c# .net multithreading producer-consumer data-sharing