我正在尝试对大量实体执行迭代,以查看它们的匹配程度
我最初写的(其中 MatchData 是结构列表 & GenerateMatch 对两个实体执行操作)
for (int i = 0; i < count; i++)
{
for (int j = i + 1; j < count; j++)
{
MatchData.Add(GenerateMatch(i, j));
Console.WriteLine("Stage :" + i + " ::: " + j);
}
}
效果很好,但速度很慢
所以我把它改成
Parallel.For(0, count, i =>
{
for (int j = i + 1; j < count; j++){
MatchData.Add(GenerateMatch(i, j));
Console.WriteLine("Stage :" + i + " ::: " + j);
}});
考虑到这会给我一个巨大的列表,它偶尔(但不总是)会引发错误“容量小于当前大小”
作为并行库的新手,我想我正在做的事情可以更好地执行(ThreadSafe?)任何指针
作为次要问题,我如何计算已完成的 i 数量,因为 i 出现故障。谢谢