У меня есть словарь с несколькими сотнями тысяч элементов.Мне нужно выполнить длительные вычисления для каждой пары в словаре, поэтому для этой цели я бы хотел создать несколько рабочих потоков и назначить каждому потоку диапазон элементов в словаре для работы.
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 рабочих потоков.