У меня есть список объектов, и я должен сделать некоторые разработки для каждого из них, и все это за наименьшее возможное время.
Поскольку эти разработки независимы друг от друга, мы 'Мы решили сделать их параллельно с Parallel.ForEach
.
Parallel.ForEach(hugeObjectList,
new ParallelOptions { MaxDegreeOfParallelism = 50 },
obj => DoSomeWork(obj)
);
Поскольку мне кажется неразумным устанавливать огромное число на ParallelOptions.MaxDegreeOfParallelism
(например, 50 или 100), как мы можем найти оптимальное числопараллельная задача, чтобы сократить этот список?
Запускает ли Parallel.Foreach
DoSomeWork
на другом ядре?(итак, поскольку у нас 4 ядра, правильная степень параллелизма будет 4?)