Каково ограничение количества потоков TPL в C#?
Я хочу знать количество потоков, созданных с помощью TPL?
Что я уже пробовал:
Проверена степень параллелизма.
Patrice T
Что говорится в документации ?
Что говорится в документации ?
Прежде всего здесь находится ссылка к документам для параллельной библиотеки задач. Это было бы хорошим местом, чтобы начать с такого очень общего вопроса. Вероятно, вам следует изучить использование пула потоков и установить максимальное количество потоков в пуле потоков.
// Limit threadpool size int workerThreads, completionPortThreads; ThreadPool.GetMaxThreads(out workerThreads, out completionPortThreads); workerThreads = 32; ThreadPool.SetMaxThreads(workerThreads, completionPortThreads);
Согласно документации, Библиотека параллельных задач (TPL)[^], "...обрабатывает разделение работы, планирование потоков на потоки ThreadPool[^]".
И в соответствии с этимпотоки ThreadPool[^] документация: "существует один пул потоков для каждого процесса. Начиная с .NET Framework 4, размер пула потоков по умолчанию для процесса зависит от нескольких факторов, таких как размер виртуального адресного пространства. Процесс может вызвать Метод getmaxthreads[^] метод определения количества потоков. Количество потоков в пуле потоков можно изменить с помощью SetMaxThreads[^] метод. Каждый поток использует размер стека по умолчанию и работает с приоритетом по умолчанию."