2
수십만 개의 요소가있는 사전이 있습니다. 사전에 각 쌍에 대해 긴 계산을 수행해야하므로,이 목적을 위해 몇 가지 작업자 스레드를 생성하고 사전에 작업 할 사전 범위의 각 스레드를 할당하고 싶습니다.사전에있는 KeyValuePair <> 요소의 반복 순서입니다 <int,T>
은 내가 해시 테이블은 "주문이 정의되어 있지 않습니다"하고 괜찮아요 이해 - 내가 신경 모두가 이것이다 :
나는 다른 스레드에서이 작업을 수행 할 경우 : pointDictionary에서
int count = 0;
foreach (KeyValuePair<int, IDataPoint> pair in pointDictionary)
{
if (count >= min && count <= max) // min,max different for each thread
{
// do stuff
}
++count;
}
것이다 요소 다른 스레드에서 같은 순서로 방문해야합니까?
그렇지 않으면 사전을 N 개의 사전으로 분리하고 각각의 미니 사전 중 하나를 N 개의 작업자 스레드에 전달해야합니다.
그냥 궁금 : LINQ는 옵션 병렬하지 않을까요? '쌍에서 pointDictionary.AsParallel() select ...'? –
@Michael - 예,이 코드는 .net 2.0을 타겟팅하고 있습니다. – Jesse