我有一些代码,目前正在优化以适应多核架构的并发性。在我的一个类中,我发现了一个嵌套的foreach
循环。基本上,外部循环遍历NetworkInterface
对象数组。内部循环遍历网络接口IP地址。
这让我想到,嵌套的Parallel.ForEach
循环一定是个好主意吗?在阅读了这篇文章(Nested Parallel.ForEach Loops on the same list?)之后,我仍然不确定在效率和并行设计方面哪种方法更适用。这个例子是关于将Parallel.Foreach
语句应用于列表,其中两个循环都在该列表上执行操作。
在我的例子中,这些循环正在做不同的事情,所以,我应该:
- 使用嵌套的
Parallel.ForEach
循环? - 在父循环上使用
Parallel.ForEach
,并保留内部循环不变?