C# 是KeyValuePair的迭代顺序<&燃气轮机;字典中的元素<;国际贸易,T>;

C# 是KeyValuePair的迭代顺序<&燃气轮机;字典中的元素<;国际贸易,T>;,c#,dictionary,iteration,C#,Dictionary,Iteration,我有一本包含几十万个元素的字典。我需要对字典中的每一对执行一次冗长的计算,因此为此,我希望生成几个工作线程,并为每个线程分配字典中的一系列元素来处理 我知道哈希表的“顺序未定义”,这很好——我所关心的是: 如果我从不同的线程执行此操作: int count = 0; foreach (KeyValuePair<int, IDataPoint> pair in pointDictionary) { if (count >= min && count <

我有一本包含几十万个元素的字典。我需要对字典中的每一对执行一次冗长的计算,因此为此,我希望生成几个工作线程,并为每个线程分配字典中的一系列元素来处理

我知道哈希表的“顺序未定义”,这很好——我所关心的是:

如果我从不同的线程执行此操作:

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

如果(count>=min&&count是,只要字典没有修改


只是想知道:并行LINQ不是一个选项吗?
从pointDictionary.AsParallel()的pair中选择…
?@Michael-是的,但不幸的是,这段代码的目标是.net 2.0