Количество потоков в пуле потоков - PullRequest
0 голосов
/ 30 октября 2018

Насколько я понимаю, .NET CLR создает пул потоков для каждого процесса. Таким образом, каждый процесс имеет свой собственный пул потоков. И в каждом пуле потоков существует определенное количество доступных потоков. Он может быть увеличен или уменьшен по мере необходимости платформой, но он начинается с заранее определенного числа потоков для каждого процесса.

Я хотел узнать количество потоков, с которых оно начнется для простого приложения WPF. Когда я использовал System.Threading.ThreadPool.GetMaxThreads(out worker, out io) и System.Threading.ThreadPool.GetAvailableThreads(out worker, out io), я получил один и тот же результат для 2047 рабочих потоков и 1000 потоков ввода-вывода. Но я предполагаю, что это не может быть правильным, так что это не правильный способ найти зарезервированные в настоящий момент потоки в пуле потоков.

Итак, я посмотрел на счетчик потоков с помощью диспетчера задач Windows, и он показал 10 потоков для приложения. Это казалось разумным, и я пришел к выводу, что в пуле потоков 9 потоков, поскольку один из 10 является основным потоком пользовательского интерфейса.

Прежде всего, мой вывод о 9 потоках в пуле потоков правильный? Во-вторых, как правильно запросить его с помощью c #?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...