27得票3回答
嵌套的Parallel.ForEach循环

我有一些代码,目前正在优化以适应多核架构的并发性。在我的一个类中,我发现了一个嵌套的foreach循环。基本上,外部循环遍历NetworkInterface对象数组。内部循环遍历网络接口IP地址。 这让我想到,嵌套的Parallel.ForEach循环一定是个好主意吗?在阅读了这篇文章(Ne...

25得票4回答
Parallel.Invoke和Parallel.ForEach本质上是相同的吗?

我所说的“同一件事”是指这两个操作基本上做了相同的工作,只是根据你要处理的内容来决定哪一个更方便调用(例如代表列表或迭代对象列表)? 我已经在 MSDN、StackOverflow 和各种随机文章中搜索过,但还没有找到明确的答案。 编辑:我应该更清楚一些;我想知道这两种方法是否做了相同的事情,...

25得票13回答
如何在TPL中为任务分配名称

我将在我的应用程序上运行许多任务,每组任务都有自己的运行原因。我希望给这些任务命名,这样当我查看并行任务窗口时,就能轻松识别它们。换个角度考虑,假设我正在使用框架级别的任务来填充列表。那么使用我的框架的开发人员也会使用任务。如果她查看并行任务窗口,可能会发现一些不知道是什么的任务。我想给任务命...

24得票4回答
这个 Parallel.ForEach() 的使用是否线程安全?

基本上,我正在使用这个:var data = input.AsParallel(); List<String> output = new List<String>(); Parallel.ForEach<String>(data, line => {...

24得票8回答
使用Parallel.ForEach进行调试或逐步执行

有没有一个简单的方法可以遍历 Parallel.ForEach 呢?什么是使用断点调试的最佳方式?

23得票2回答
使用BlockingCollection.GetConsumableEnumerable的Parallel.ForEach循环

为什么使用 GetConsumableEnumerable 时,Parallel.ForEach 循环会退出并出现 OperationCancelledException 异常? //outside the function static BlockingCollection<doub...

22得票7回答
Parallel.ForEach有序执行

我正在尝试使用新的C# 4.0的Parallel.ForEach函数在对象列表上执行并行函数。这是一个非常长的维护过程。我希望它按照列表的顺序执行,这样我就可以在之前的点停止和继续执行。我该如何做到这一点? 这是一个例子。我有一个对象列表:a1到a100。这是当前的顺序: a1, a51,...

20得票3回答
在执行Parallel.ForEach期间更改parallelOptions.MaxDegreeOfParallelism是否可能?

我正在运行一个多线程循环:protected ParallelOptions parallelOptions = new ParallelOptions(); parallelOptions.MaxDegreeOfParallelism = 2; Parallel.ForEach(items...

20得票5回答
Parallel.ForEach - 它在单核机器上运行吗?

我知道新的TPL(任务并行库)已经实现了Parallel.ForEach,使其能够与“显式并行性”一起工作。这意味着它不能保证您的委托将在多个线程中运行,而是检查主机平台是否有多个核心,如果是,则仅在核心之间分配工作(基本上每个核心1个线程)。 如果主机系统没有多个核心(越来越难找到这样的计...

19得票4回答
为什么在迭代GetConsumingEnumerable()时,不能完全清空底层的阻塞集合?

我在使用任务并行库、BlockingCollection、ConcurrentQueue和GetConsumingEnumerable时遇到了一个可量化且可重复的问题,尝试创建一个简单的流水线。 简而言之,从一个线程向默认的BlockingCollection(在底层依赖于Concurren...