Отладка Threadpool в C # - PullRequest
       9

Отладка Threadpool в C #

1 голос
/ 22 сентября 2009

Я хочу наблюдать за Threadpool при отладке Visual C # без изменения кода (программа уже запущена), могу ли я добавить код в мониторинг? Возможно, что я запрашиваю метод Threadpool.AvailableThreads при отладке. Я занимаюсь разработкой в ​​Visual Studio 2008.

РЕДАКТИРОВАТЬ: я только что понял, что в моих потоках (то есть в методе, который я поместил в пул потоков) выполняются запросы mysql, и они занимают пул потоков.

Ответы [ 2 ]

1 голос
/ 22 сентября 2009

Мне неясно, что именно вы хотите контролировать. В VS окно потоков покажет вам все потоки и, переключаясь между потоками, вы можете контролировать их соответствующие стеки вызовов. Если вам нужны дополнительные подробности, вы можете заглянуть в WinDbg, который позволит вам изучить дополнительные детали (хотя и не так легко, как VS).

РЕДАКТИРОВАТЬ: Ответ на вопрос в комментарии. Это упрощение, но обычно пул потоков управляет несколькими потоками, которые используются для запуска различных задач, таких как QueueUserWorkItem. В пуле потоков нет ничего особенного, кроме того, что они управляются пулом потоков. Преимущество этого состоит в том, что потоки могут быть повторно использованы. Создание новых потоков - дорогостоящая операция, поэтому при повторном использовании потоков стоимость амортизируется.

Ваш основной поток не обрабатывается пулом потоков, равно как и другие потоки, созданные вами с помощью класса Thread.

0 голосов
/ 02 июля 2011

Если вы не можете прервать поток выполнения, вы можете добавить точек трассировки с условиями и сообщением, где вы можете увидеть его в действии в выходной Windows. Аналогичным образом вы можете добавить Отладочные трассировки / logs, чтобы увидеть результат. Нажмите на ссылки, чтобы увидеть более подробную информацию.

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