Пустые рабочие темы, что они? - PullRequest
2 голосов
/ 30 августа 2009

При отладке .NET Framework 3.5, приложения WinForms я обнаружил несколько «рабочих потоков» без имени.

Я знаю, что когда вы открываете приложение, вы получаете по умолчанию один рабочий поток. Однако в середине отладки, когда я приостанавливаю отладчик и смотрю в окно «Потоки», я вижу около 5+ похожих потоков (приоритет = нормальный).

Все потоки, открытые приложением, получили имя, поэтому они не открываются из кода, по крайней мере, через Thread.Start ()

Когда я пытаюсь дважды щелкнуть, VS.NET также не может найти код.

Что это за темы? Они нормальные, или некоторые операции каким-то образом оставляют пустые потоки?

Могут ли они быть таймерами или аналогичными неочевидными элементами управления, функции работают с временными потоками в фоновом режиме?

Ответы [ 3 ]

5 голосов
/ 30 августа 2009

Я только что сравнил потоки в VS с потоками в WinDbg, и оказалось, что VS помечает потоки пула потоков как «Рабочий поток» в окне потоков. Таким образом, я предполагаю, что вы видите потоки, запущенные из-за использования BackgroundWorker, Timer, BeginInvoke или аналогичных функций пула потоков.

0 голосов
/ 31 августа 2009

В момент, когда Windows добавляет потоки в ваше приложение, это когда вы вызываете GetOpenFileName () (или другие функции, которые вызывают диалог ppen / save File.

Windows выполняет сканирование дисков / папок в фоновом режиме и, очевидно, поддерживает потоки живыми после закрытия диалога. Я только что узнал об этом через испытания довольно давно. Вероятно, есть больше точек, как это.

0 голосов
/ 30 августа 2009

Продолжая статью Рушйо, эти темы могут быть связаны с тем, как Visual Studio размещает и отлаживает вашу программу (пробовали ли вы запускать сборку релиза из-за пределов Visual Studio и использовать Process Explorer для проверки).

Если они явно не являются частью хостинга VS, они, вероятно, связаны с пулом потоков .NET, который используется для таймеров, вызовов асинхронных методов.

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