Как закрыть «осиротевшее» окно консоли, открытое изнутри visual studio? - PullRequest
3 голосов
/ 26 июля 2010

При работе с консольными приложениями в Visual Studio я буду запускать приложение, нажимая клавишу F5, чтобы перевести его в режим отладки. Иногда (и я не уверен, как это происходит), я возвращаюсь в «режим редактирования» в Visual Studio, и окно отлаженной консоли все равно будет открыто.

Он останется открытым, но совершенно не отвечает. Я не могу закрыть окно, щелкнув правой кнопкой мыши по окну и нажав «закрыть»; Я не могу закрыть его с помощью диспетчера задач, и я не могу закрыть его, завершив определенный процесс (насколько мне известно). На самом деле, я даже не могу выйти из Windows, когда это происходит без физического нажатия кнопки питания для перезагрузки компьютера.

Как я могу закрыть окно, не перезагружая компьютер?

Информация о системе: Windows XP SP3, Visual Studio 2010

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

Ответы [ 3 ]

4 голосов
/ 18 ноября 2010

У меня почти такая же проблема, и я нашел другое решение, так что публикация здесь на случай, если это поможет кому-то еще ...

В моем случае я использую XP SP3 и VS 2005. Если я перестану отлаживать консольное приложение (иногда), командное окно не закроется.

Проблема в том, что процесс фактически завершился, он просто не отображается в диспетчере задач, поэтому нет способа что-либо сделать с окном или выключением. Окно остается чувствительным к отметке / копированию / вставке / прокрутке и т. Д., Но это все.

Нашли здесь исправление для поддержки MS: http://support.microsoft.com/kb/982551

2 голосов
/ 26 июля 2010

Первая часть нормальная, окно консоли не может отвечать на запросы на закрытие, пока отладчик выполняет процесс в режиме прерывания.

Отладка + Стоп Отладка должна завершить программу.Однако есть проблема, специфичная для XP и более ранних версий, процесс не может завершиться, если поток ядра выполняет запрос ввода-вывода для процесса.Вы можете увидеть это условие на Taskmgr.exe, вкладка Процессы.Вид + Выберите столбцы и отметьте «Ручки».У вас есть процесс зомби, когда вы видите, что он использует 1 дескриптор.

Не совсем уверен, как вы выходите из условия, он довольно специфичен для запроса ввода-вывода, который не завершается.Отказавшись от XP давным-давно, я смутно помню, как убил devenv.exe для решения проблемы.Windows 7 хороша, рекомендуется.

1 голос
/ 29 марта 2011

У меня была эта проблема на Windows XP в прошлом. Только что получил в win 7 в первый раз. Человек это раздражает.

РЕДАКТИРОВАТЬ: Уничтожение devenv.exe работает для меня. Раздражает необходимость перезапуска sln.

...