【发布时间】:2012-10-02 14:39:48
【问题描述】:
我有一个集合,其中包含要处理的元素,最多只能同时处理四个元素。在运行时,所有进程一起启动并且都进入等待状态。一次只处理四个元素。
问题是处理元素是随机选择的,因为所有线程都在等待资源释放。表示第一个元素可以是集合中的最后一个。
但是,我需要按元素在集合中的顺序进行处理。
请告诉我如何才能做到这一点?
我正在使用 TPL 和 C# 4.0
【问题讨论】:
-
Parallel.ForEach? msdn.microsoft.com/en-us/library/dd460720.aspx
-
是需要按顺序处理,还是只需要处理结果按顺序?如果您需要处理它们以便在计算中产生副作用,并且在进行并行处理时这很可怕。
-
我需要按顺序处理它们。所有进程都是独立的,因此不应该有任何副作用。
-
你知道
ParallelEnumerable.AsOrdered方法吗? -
我研究过这个。但这里的问题是我只是迭代集合并开始处理每个元素。每个元素都负责自己的过程。
标签: c# .net multithreading task-parallel-library