在我的代码的一个并行部分中,我将每个线程的结果保存到一个
也就是说,
ConcurrentBag<Τ>
中。然而,当这个过程完成后,我需要遍历这些结果,并将它们通过我的评估算法运行。普通的foreach
循环是否能够遍历所有成员,还是需要特殊的代码?我也考虑过使用队列而不是背包,但我不知道哪个更好。背包通常在并行代码结束时只包含大约20个项目。也就是说,
foreach
循环是否能够访问和运行ConcurrentBag<Τ>
中的所有成员?ConcurrentBag<Future> futures = new ConcurrentBag<Future>();
foreach (var move in futures)
{
// stuff
}