2011-03-30 67 views
2

我有一個包含幾十萬個元素的字典。我需要對字典中的每一對執行冗長的計算,因此爲了這個目的,我想生成一些工作線程併爲字典中的每個線程分配一系列元素來處理。是字典中KeyValuePair <>元素的迭代順序<int,T>

我體會到了「順序是未定義」的哈希表這很好 - 我所關心的是這樣的:

如果我這樣做,從不同的線程:

int count = 0; 
foreach (KeyValuePair<int, IDataPoint> pair in pointDictionary) 
{ 
    if (count >= min && count <= max) // min,max different for each thread 
    { 
     // do stuff 
    } 
    ++count; 
} 

將在pointDictionary元素在不同的線程上以相同的順序訪問?

如果不是,我將不得不將字典拆分爲N個字典,並將每個迷你字典中的一個傳遞給N個工作線程。

+0

只是想知道:不會並行LINQ是一個選項嗎? '從pairDictionary.AsParallel()中選擇...'? – 2011-03-30 05:48:04

+0

@Michael - 是的,除了這段代碼是針對.net 2.0不幸的是 – Jesse 2011-03-30 13:05:06

回答

相關問題