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