与SqlDataReader的数据并行

时间:2013-07-12 15:05:13

标签: c# .net ado.net parallel-processing

我有一个循环,从SqlDataReader逐行处理数据。它很花哨。现在我想为它添加并行性。理想情况下,我想读取一行,将其丢弃到一个线程,读取另一行等。我想要一个可配置数量的线程(比如说10个),这样就可以打开(完成它的任务),另一个允许启动。

是否有内置方法可以执行此操作,还是应该自行处理?我看着PLINQ和Parallel,但我觉得我很难理解它。

1 个答案:

答案 0 :(得分:2)

由于您使用的是DataReader,因此它只能在内存中前进一行,因此您需要自行处理。您需要将内存中的行封送到某个数据结构中并将其传递给该线程,然后再次发出Read()以进行下一步。

当你已经打开太多线程时,你必须确定你将如何暂停,但这是另一个讨论,如果你最后对此有疑问,那么发布什么你有,我们很乐意帮助你!