Поделиться через


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значение , фактическое максимальное число потоков может быть ниже запрошенного.

Применяется к

См. также раздел