I 다음 TPL
기능 가지고병렬 증분 제어 변수
int arrayIndex = 0;
Dictionary < string, int > customModel = new Dictionary < string, int >();
Task task = Task.Factory.StartNew(() =>
// process each employee holiday
Parallel.ForEach <EmployeeHolidaysModel> (holidays,
new ParallelOptions() {
MaxDegreeOfParallelism = System.Enviroment.ProcessorCount
},
item => {
customModel.Add(item.HolidayName, arrayIndex);
// increment the index
arrayIndex++;
})
);
//wait for all Tasks to finish
Task.WaitAll(task);
문제는 arrayIndex
때문에 평행도의 고유 값이 없을 것입니다.
arrayIndex
변수를 제어 할 수있는 방법이있어 병렬 작업간에 고유 한 값이 있습니까?
기본적으로 내
customModel
에는 중복 값arrayIndex
값을 가질 수 없습니다.
감사합니다. 여기
첫째 : 왜 당신이 병렬로이 작업을 수행 하시겠습니까? 평행주의에 실제로 도움이되는 충분한 휴일이 있습니까? 작은 데이터 세트의 경우, 다중 스레드 사용의 오버 헤드는 작업을 병렬화함으로써 얻을 수있는 이점보다 훨씬 큽니다. –
샘플을 배치하기 만하지만 많은 계산이 있고 데이터를 가져 오는 데 약 8 초가 걸립니다. 그게 더 빠를 필요가 있습니다. – VAAA
customModel 객체가 사전이되어야합니까? 객체가 대신 색인을 추적하도록하는 것이 낫지 않습니까? 그것은 단지 열쇠와 가치있는 색인으로 문자열을 가지고 이상하게 보입니다,하지만 아마도 당신은 그것을 정교하게 설명 할 수 있습니다. –