ThreadPool.SetMaxThreads(Int32, Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает количество запросов к пулу потоков, которые могут быть активными одновременно. Все запросы, превышающие это количество, остаются в очереди до тех пор, пока потоки пула не станут доступны.
public:
static bool SetMaxThreads(int workerThreads, int completionPortThreads);
public static bool SetMaxThreads (int workerThreads, int completionPortThreads);
static member SetMaxThreads : int * int -> bool
Public Shared Function SetMaxThreads (workerThreads As Integer, completionPortThreads As Integer) As Boolean
Параметры
- workerThreads
- Int32
Максимальное количество рабочих потоков в пуле потоков.
- completionPortThreads
- Int32
Максимальное количество потоков асинхронного ввода-вывода в пуле потоков.
Возвращаемое значение
Значение true
, если изменение выполнено успешно; в противном случае — значение false
.
Комментарии
Этот метод не поддерживается, если пул потоков Windows настроен для использования вместо пула потоков .NET. Дополнительные сведения см. в разделе Настройка конфигурации пула потоков Windows.
Максимальное число рабочих потоков или потоков завершения ввода-вывода не может быть меньше числа процессоров на компьютере. Чтобы определить, сколько процессоров присутствует, получите значение Environment.ProcessorCount свойства . Кроме того, нельзя задать максимальное число рабочих потоков или потоков завершения ввода-вывода на меньшее, чем соответствующее минимальное число рабочих потоков или потоков завершения ввода-вывода. Чтобы определить минимальный размер пула потоков, вызовите GetMinThreads метод .
Если среда CLR размещена, например в службах IIS или SQL Server, узел может ограничить или предотвратить изменение размера пула потоков.
Будьте осторожны при изменении максимального количества потоков в пуле потоков. Хотя ваш код может быть полезным, изменения могут оказать негативное влияние на используемые библиотеки кода.
Установка слишком большого размера пула потоков может привести к проблемам с производительностью. Если одновременно выполняется слишком много потоков, переключение задач становится существенным фактором.
Примечание
Пул потоков может иметь верхние пределы для максимального количества потоков (например short.MaxValue
, , в зависимости от реализации). Значения аргументов ограничиваются верхним пределом, поэтому даже если метод возвращает true
значение , фактическое максимальное число потоков может быть ниже запрошенного.