Процесс C # затягивается после завершения всех потоков - PullRequest
3 голосов
/ 17 января 2011

У меня многопоточное "консольное" приложение на C # с множеством потоков, которые заканчиваются. Все мои темы выходят. 90% времени приложение грациозно завершается. Но в 10% случаев копия моего приложения задерживается: консоль все еще открыта.

Я присоединяюсь к этому через Visual Studio 2010 и использую прерывание, чтобы прервать его, и мне показаны два «пустых» стековых фрейма: один для Main и один для одного из потоков, созданных моим приложением. Ни у кого нет ничего в стеке. Visual Studio говорит, что «исходный код недоступен для потока», если я щелкаю по одному из этих потоков, и предлагает ссылку «представление разложенного кода». Я нажимаю на это, и он говорит, что "дизассемблированный код не доступен для этой темы".

Есть идеи, что я могу делать не так?

1 Ответ

2 голосов
/ 17 января 2011

Код отключается через несколько дополнительных минут. Может случиться так, что некоторые .net helper thead или поток сборки мусора все еще работают. Это может занять некоторое время.

Выполняете ли вы отладочную сборку или сборку выпуска и уверены, что этот процесс не является одним из тех процессов, размещенных в Visual Studio, которые продолжают выполняться в целях проектирования.

...