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