Порядок итерации элементов KeyValuePair <> в словаре <int, T> - PullRequest
2 голосов
/ 30 марта 2011

У меня есть словарь с несколькими сотнями тысяч элементов.Мне нужно выполнить длительные вычисления для каждой пары в словаре, поэтому для этой цели я бы хотел создать несколько рабочих потоков и назначить каждому потоку диапазон элементов в словаре для работы.

Iпонять, что "порядок не определен" для хеш-таблиц, и это нормально - все, что меня волнует, это:

, если я делаю это из разных потоков:

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 рабочих потоков.

1 Ответ

2 голосов
/ 30 марта 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...