【发布时间】:2011-07-08 02:37:39
【问题描述】:
我一直在研究 .Net 线程,并了解了 Threading.Task 和 Threading.Task.Parallel 类。现在使用Parallel 类的ForEach 方法,我在单独的线程上处理每个对象。但是我相信ForEach 方法会等待所有线程完成执行,然后再返回。这导致那些在其他线程之前完成的线程处于空闲状态。我想让这些线程不断工作。所以这就是我希望做的:
我有线程A 负责从表中选择记录,然后启动n 个工作线程来处理每条记录。
每次工作线程完成它的工作时,它都应该向线程
A请求下一条要处理的记录。在分配记录给工作线程时,如果线程
A用完,它应该返回数据库并获取更多。我猜这个分配过程必须包装在一个临界区块中。
谁能指点我适合我的场景的教程?
【问题讨论】:
标签: c# .net multithreading thread-safety parallel-processing