Есть несколько критериев. В общем, необработанные исключения являются главным убийцей. Есть и другие ошибки, но они становятся довольно техническими.
Во-вторых, приложение перестает отвечать на запросы, если отправленные ему сообщения не извлекаются. Windows прикрепляет таймер к сообщениям для каждого приложения. Если это не обрабатывается, то тогда вы получите сообщение без ответа.
В-третьих, приложения могут также явно указать Windows, что процесс завершения приложения может привести к определенным не фатальным ошибкам. Часто это делается для предотвращения повреждения данных.
Какая программа виснет?
редактировать:
Aparently, есть способ , чтобы выключить. По стечению обстоятельств я читал блог команды perfmon и наткнулся на эту статью. Это дает шаги, чтобы явно отключить "двоение" для приложения. Я буду вырезать и вставлять шаги также.
Чтобы загрузить набор средств для обеспечения совместимости приложений, посетите следующий веб-узел Microsoft:
http://msdn2.microsoft.com/en-us/library/aa286552.aspx
Чтобы создать пользовательскую базу данных совместимости приложений:
Установите и запустите средство администрирования совместимости.
Щелкните правой кнопкой мыши Custom Database, а затем нажмите New.
Щелкните правой кнопкой мыши новую базу данных и выберите «Переименовать».
Введите noghost в качестве имени базы данных. (Вы можете назвать это как хотите.)
Щелкните правой кнопкой мыши «Новая база данных», нажмите «Создать новую», а затем нажмите «Исправление приложения». Введите название программы, которая будет исправлена.
Введите название производителя программы.
Найдите и выберите соответствующий файл программы (.exe).
Нажмите кнопку "Далее.
В окне «Режимы совместимости» нажмите «Нет» и нажмите «Далее».
В списке исправлений совместимости щелкните NoGhost.
Нажмите либо Test Run, либо Finish. При нажатии кнопки «Выполнить тест» запускается программа с настройкой совместимости приложения. Нажмите Finish, чтобы добавить исправление совместимости в вашу базу данных.
В меню Файл выберите Сохранить, чтобы сохранить базу данных. Или скопируйте базу данных в папку C:\Windows\AppPatch.
Щелкните правой кнопкой мыши базу данных и выберите «Установить». Или выполните команду sdbinst c:\windows\apppatch\noghost.sdb -q для установки базы данных.
Я сам проверил шаги. , ,