.NET Framework 4.0에서 병렬 for 루프를 활용하려고합니다. 그러나 나는 그 결과 집합에 몇 가지 요소가 빠져 있다는 것을 알아 차렸다.병렬 For 루프
다음과 같이 코드 스 니펫이 있습니다. lhs.ListData은 nullable double 및 의 목록입니다. rhs.ListData은 Null 허용 Double 목록입니다. I는 "*"동작을 수행 할 때
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가 rhs.ListData은 7962.의 길이가 7,964 및 의 길이를 가지며, listResult 출력으로 만 7867을 갖는다. 두 입력 목록에 널 요소가 있습니다.
실행 중에 어떤 일이 일어나는지 확실하지 않습니다. 결과 집합에 더 적은 요소가 나타나는 이유가 있습니까? 조언을주세요 ...
[게시물에 서명 또는 태그 라인을 사용하지 마십시오] 제발 (http://stackoverflow.com/faq#signatures). – meagar