2014-11-18 3 views
0

В проекте службы windows в C# я создаю 2 потока для выполнения 2 заданий. При взгляде на инструмент проводника процессов я вижу более 30 потоков, созданных для процесса. Отладка через мой код Я не вижу более двух потоков, которые создаются. Я не уверен, почему я вижу столько потоков для процесса в проводнике процессов.threading in C# windows service

Потоки должны запускаться каждые 2 минуты, поэтому я вызываю Thread.Sleep (время).

Любые идеи, почему я вижу столько потоков в моем проводнике процессов?

тэк, что я вижу, как показано ниже, но вместо 4-х нитей я говорю в целом гораздо больше:

Process     PID  Type Name 
MyService.vshost.exe 1234 Thread MyService.vshost.exe(1234) 1265 
MyService.vshost.exe 1234 Thread MyService.vshost.exe(1234) 6528 
MyService.vshost.exe 1234 Thread MyService.vshost.exe(1234) 3175 
MyService.vshost.exe 1234 Thread MyService.vshost.exe(1234) 5325 

Спасибо заранее.

+0

Почему бы вам не опубликовать вывод обработчика процесса, чтобы мы могли видеть, что вас беспокоит? –

+0

@Steve У меня нет доступа к моему выпуску в данный момент. Я могу попытаться опубликовать что-то в ближайшее время. Меня беспокоит то, что я ожидаю только 2 потока для идентификатора процесса. Я вижу гораздо больше потоков для processID. Я беспокоюсь о производительности и просматриваю код, который, похоже, не может найти, где создается больше потоков. – AspUser7724

+1

. Framework .Net будет иметь свои собственные потоки для GC и т. Д. Я просто попробовал запустить новый консольный проект - 12 потоков с приложением отладчика, 4 без. Кстати, это вообще-то связано с asp.net? – Blorgbeard

ответ

1

VS не показывает другие потоки, потому что отладчик прикреплен к управляемому коду, но большинство из этих потоков выполняет только код native.

Для прикрепления к родному коду, откройте окно Attach to Process, нажмите Select и в окне окна Select Code Type выберите «Родной» и «Управляемый».

Visual Studio Code Type Window

Теперь вы можете увидеть все темы в окне резьба: управляемые и родной.