Я реализовал метаэвристический решатель и использовал .NET 4.0 Parallel.For
и Parallel.Foreach
. Он отлично работает на моей машине среднего уровня. Но поиск слишком интенсивен и потребляет слишком много ресурсов, особенно процессорного времени на младших машинах.
Поэтому я думаю, что мне нужно включить опцию для снижения интенсивности поиска, когда это необходимо. Я хотел бы снизить загрузку процессора, не касаясь алгоритма. Это нормально, если поиск завершается медленнее, если это не блокирует машину и позволяет другим работать в стороне.
Я подумываю поставить Thread.Sleep
на методы, так как все потоки на 100% привязаны к ЦП (без ввода-вывода). Снизит ли это интенсивность использования ЦП, которая мне нужна? Есть ли лучшее решение?
MaxDegreeOfParallelism
для создания ограниченного числа потоков и оставить несколько ядер свободными? - person Tudor   schedule 13.09.2012