【发布时间】:2012-09-19 01:25:32
【问题描述】:
我有一些代码,我目前正在优化多核架构中的并发性。在我的一个课程中,我发现了一个嵌套的foreach 循环。基本上,外部循环遍历NetworkInterface 对象的数组。内部循环遍历网络接口 IP 地址。
这让我想到,嵌套 Parallel.ForEach 循环一定是个好主意吗?在阅读了这篇文章 (Nested Parallel.ForEach Loops on the same list?) 之后,我仍然不确定在效率和并行设计方面什么适用。此示例将 Parallel.Foreach 语句应用于一个列表,其中两个循环都在该列表上执行操作。
在我的示例中,循环正在做不同的事情,所以,我应该:
- 使用嵌套的 Parallel.ForEach 循环?
- 父循环上的用户 Parallel.ForEach 并保持内部循环不变?
【问题讨论】:
-
您可以使用秒表测试解决方案吗?然后你就会知道它是否值得。
标签: c# .net concurrency task-parallel-library performance