У меня многопоточное приложение с консолью C# с большим количеством потоков trhat заканчивается. Все мои потоки выходят. 90% времени, когда приложение изящно выходит. Но в 10% случаев копия моего приложения задерживается: консоль все еще открыта.C# процесс задерживается после того, как все потоки завершены
Я присоединяюсь к этому через Visual Studio 2010 и использую break, чтобы прервать его, и на нем показаны два «пустых» стековых фрейма: один для Main и один для одного из потоков, созданных приложением. В стеке ничего нет. Visual Studio говорит, что «исходный код недоступен для потока», если я нажму на любой из этих потоков, и он предлагает ссылку «разборки кода». Я нажимаю на это, и он говорит, что «дизассемблированный код недоступен для этого потока».
Любые идеи, что я могу делать неправильно?
Отключите только мой код в настройках отладчика и повторите попытку. – SLaks
Вы вызываете Environment.Exit для явного завершения вашего процесса? –
Это похоже на проблему, которую я уже имел, но в моем случае у меня не было возможности даже приостановить отладку! + Fav. Кстати, вы правильно вилки и присоединяетесь ко всем нитям? Можете ли вы проверить трассировку стека ожидающих потоков до вашего управляемого кода? Например, поток может быть заблокирован в семафоре, который частично неуправляем. –