Manisha Tambade Ответов: 2

Каково ограничение количества потоков TPL в C#?


Я хочу знать количество потоков, созданных с помощью TPL?

Что я уже пробовал:

Проверена степень параллелизма.

Patrice T

Что говорится в документации ?

2 Ответов

Рейтинг:
2

James Walsh Jr

Прежде всего здесь находится ссылка к документам для параллельной библиотеки задач. Это было бы хорошим местом, чтобы начать с такого очень общего вопроса. Вероятно, вам следует изучить использование пула потоков и установить максимальное количество потоков в пуле потоков.

// Limit threadpool size
int workerThreads, completionPortThreads;
ThreadPool.GetMaxThreads(out workerThreads, out completionPortThreads);
workerThreads = 32;
ThreadPool.SetMaxThreads(workerThreads, completionPortThreads);


Без каких - либо подробностей о том, что вы пытаетесь сделать, какой язык программирования вы используете, какую структуру кода вы используете, будет просто невозможно дать какой-либо осмысленный ответ.


Рейтинг:
1

Graeme_Grant

Согласно документации, Библиотека параллельных задач (TPL)[^], "...обрабатывает разделение работы, планирование потоков на потоки ThreadPool[^]".

И в соответствии с этимпотоки ThreadPool[^] документация: "существует один пул потоков для каждого процесса. Начиная с .NET Framework 4, размер пула потоков по умолчанию для процесса зависит от нескольких факторов, таких как размер виртуального адресного пространства. Процесс может вызвать Метод getmaxthreads[^] метод определения количества потоков. Количество потоков в пуле потоков можно изменить с помощью SetMaxThreads[^] метод. Каждый поток использует размер стека по умолчанию и работает с приоритетом по умолчанию."