fur*_*der 7 c# parallel-processing foreach parallel.foreach
在代码的并行部分中,我将每个线程的结果保存到ConcurrentBag中。但是,完成此操作后,我需要遍历每个结果并通过我的评估算法运行它们。普通的foreach实际上会遍历所有成员,还是我需要特殊的代码?我还考虑过使用队列之类的东西来代替行李,但我不知道哪种方法最好。在并行代码的末尾,袋子通常只包含20个左右的项目。
即,实际上将为ConcurrentBag的所有成员访问并运行foreach吗?
ConcurrentBag futures = new ConcurrentBag();
foreach(move in futures)
{
// stuff
}
Run Code Online (Sandbox Code Playgroud)
您不需要特殊的代码,C#的foreach将调用“ GetEnumerator” ,该快照为您提供了快照:
列举的物品代表了袋子中物品的即时快照。调用GetEnumerator之后,它不会反映对集合的任何更新。
归档时间: |
|
查看次数: |
4739 次 |
最近记录: |