Я использую Parallel.ForEach и делаю некоторые обновления базы данных, теперь без установки MaxDegreeOfParallelism, машина с двухъядерным процессором приводит к тайм-аутам клиента sql, в то время как машина с четырехъядерным процессором почему-то не истекает.
Теперь у меня нет контроля над тем, какие ядра процессора доступны для выполнения моего кода, но есть ли какие-то настройки, которые я могу изменить с помощью MaxDegreeOfParallelism, которые, вероятно, будут выполнять меньше операций одновременно и не приведут к тайм-аутам?
Я могу увеличить таймауты, но это не лучшее решение, если на более низком процессоре я могу обрабатывать меньше операций одновременно, это снизит нагрузку на процессор.
Хорошо, я прочитал все другие сообщения и MSDN, но установка MaxDegreeOfParallelism на более низкое значение приведет к тому, что мои четырехъядерные машины пострадают?
Например, есть ли способ сделать что-то вроде, если у ЦП два ядра, тогда используйте 20, если у ЦП четыре ядра, то 40?