我想在.NET Framework 4.0中利用parallel for循環。但是我注意到,我在結果集中缺少一些元素。並行For循環
我有一段代碼如下。 lhs.ListData爲空雙和rhs.ListData列表爲空雙列表。
int recordCount = lhs.ListData.Count > rhs.ListData.Count ? rhs.ListData.Count : lhs.ListData.Count;
List<double?> listResult = new List<double?>(recordCount);
var rangePartitioner = Partitioner.Create(0, recordCount);
Parallel.ForEach(rangePartitioner, range =>
{
for (int index = range.Item1; index < range.Item2; index++)
{
double? result = lhs.ListData[index] * rhs.ListData[index];
listResult.Add(result);
}
});
lhs.ListData具有7964和長度rhs.ListData具有7962.長度當我執行 「*」 操作,listResult僅具有7867作爲輸出。兩個輸入列表中都有空元素。
我不知道什麼是執行過程中發生的事情。爲什麼我在結果集中看到更少的元素有什麼原因嗎?請指點...
請[不要在帖子中使用簽名或標語(http://stackoverflow.com/faq#signatures)。 – meagar