Программа зависает при закрытии

После закрытия программы остаётся процесс в диспетчере задач

После закрытия программы остаётся процесс в диспетчере задач.

Как определить из-за чего это происходит? При запуске программы через F5 программа после закрытия правильно завершается. Но после закрития при запуске Alt F5 висит в диспетчере.

1 ответ 1

CLR завершает .NET-приложение тогда, когда все его не фоновые потоки завершили работу. Поток завершает работу, когда его главная функция возвращает управление (или при вызове метода Abort). Для приложений WPF поведение основного потока определяется свойством Application.ShutdownMode, по умолчанию он завершается при закрытии всех окон.

Соответственно, методика отладки такой ситуации такова: Убедиться, что в программе не остается невидимых окон, мешающих закрытию основного потока. Если приложение создает (явно) дополнительные потоки, которые бесконечно работают и никогда не возвращают управление, при их запуске нужно установить свойство IsBackground = true . Если приложение не создает дополнительных не фоновых потоков, после завершения всех своих потоков нужно приостановить выполнение программы ( Отладка — Приостановить все ) и открыть окно потоков ( Отладка — Окна — Потоки ). В данном окне можно увидеть содержимое стека для каждого потока, и на основе этого понять источник проблемы.

игры зависают на мертво windows 10, решено!!!

Если проблемный поток создает код сторонней библиотеки, нужно обратиться к ее документации и выяснить, как это исправить. Если проблемным потоком оказался «GC Finalizer Thread», нужно убедиться, что для всех IDisposable-объектов вызывается метод Dispose или его аналог (для файловых потоков, соединений с БД и т.п. нужно всегда явно освобождать ресурсы, чтобы избежать проблем с буферизацией/кэшированием). Дело в том, что финализаторы — очень ненадежный метод освобождения ресурсов. В некоторых ситуациях они могут приводить к взаимоблокировке, если поток сборщика мусора пытается взять Lock или на объект, занятый другим потоком, выполнение которого было прервано сборкой мусора (см. например здесь описание такой ситуации для STA COM-объектов). Вызов метода Environment.Exit позволяет принудительно завершить программу (независимо от числа активных потоков), но так делать не следует. При этом не вызываются блоки finally в выполняющемся коде, как следствие — какие-то данные могут не дойти из промежуточных буферов до их места назначения (файл, БД, . )

Примечание — потоки из ThreadPool по умолчанию являются фоновыми, о них можно не заботиться, они никогда не предотвращают завершение программы. Руководство на основе обсуждения в недавнем вопросе «Консольное приложение не завершается», который почему-то снесли, поэтому оставляю информацию здесь. Источник

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

Работа с Excel: его процесс висит даже после закрытия программы
Добрый Вечер! Подскажите пожалуйста, пишу программу для обработки Excel файлов но после закрытия. Процесс программы висит в диспетчере задач даже после закрытия программы

Читайте также:
Какая программа является антивирусной a аваст b winamp c nero d stamina

Как убрать мертвое зависание в играх на Windows 10 Professional


Не понимаю почему программа остается в процессах CreateNoKillProcess — запрет закрытия программы в диспетчере задач
Почему вот этот код не работает: #include BOOLEAN CreateNoKillProcess(WCHAR. В диспетчере задач висит странный процесс
BF8CA43E-FE7D-4FAE-8186-ADF9BB27AFF3.exe (C:UsersZerrizAppDataLocalMicrosoftMacromedFlash.

Мои телепатические способности подсказывают, что где-то продолжает работать поток, не являющийся фоновым, что предотвращает завершение приложения. В целом же, просить найти ошибку в приложении без предоставления кода — как-то даже неприлично.

Мои телепатические способности подсказывают, что где-то продолжает работать поток, не являющийся фоновым, что предотвращает завершение приложения. В целом же, просить найти ошибку в приложении без предоставления кода — как-то даже неприлично. Дело в том, что проект огномный. И потоков всего 4. и они все IsBackground = true; Может есть еще какие нибудь варианты, причины? Может что-то можно прописать на OnClosing?
Или может какой нубубь утилитой можно посмотреть какие процессы внутри программы продолжают функционировать после закрытия программы? Добавлено через 12 минут
Сделал таким способом:

Работает, но так эстетически не красиво. Принудительно убивать процесс.
Может есть другие альтернативные варианты? Никак не могу найти причину. D:
Запостил бы с радостью сюда код. Но тут строк больше 3-х тысяч. Добавлено через 39 минут
up ! Удалил все потоки. ) Прога продолжает висеть в диспетчере задач. Подскажите плз варианты. если дело не в потоках, тогда в чем. Исключений никаких не возникает, потоков нет. Добавлено через 12 минут
Приложение написано на WPF. Каким образом можно отследить что выполняется после закрытия приложения? Добавлено через 2 часа 30 минут Мой тебе совет(мб и не верный)
1. Построй решение(ф6 в компиляторе)
2. Закрой компилятор
3. Открой файл.ехе в папке с проектом.
4. Закрой файл.ехе
5. Открой диспетчер задач и удивись 3к строчек ето не показатель я на 1м курсе писал код в 6к строчек и ничего не хвастался. в гугл хроме тех строчек больше миллиона

Добавлено через 1 минуту
не в потоках дело. Добавлено через 16 минут
кстати да, для удобности используй блоки Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Программа на WinApi висит после закрытия в Диспетчере
После запуска приложения в VS приходится останавливать даже после закрытия. Решил попробовать. При закрытии формы не убивается процесс в диспетчере задач, а висит там
При нажатии на кнопку выполняется процедура buttonclick в которой написано close; программа. Процесс висит после закрытия
Есть небольшой проект, который почему-то не выгружается из процессов после закрытия. Из потоков там. Не завершаться процесс после закрытия программы
Добрый день. Возникла проблема, после закрытия программы один из процессов.

Как закрыть программу принудительно, если она зависла и не реагирует на нажатия.

Доброго времени! В ряде случаев даже самые «стабильные» и надежные программы могут перестать отзываться на какие-либо нажатия мышки/клавиатуры (т.е. попросту зависнуть). Для решения вопроса, можно, конечно, перезагрузить ПК/ноутбук — но далеко не всегда это удобно (часть данных в др.

Читайте также:
Что значит перезагрузить программу

ПО будет сброшена и не сохранится. ) . Логично, что лучше всего закрыть только эту конкретно-зависшую программу. Всем известное сочетание ALT+F4 — далеко не всегда решает проблему, и, собственно, поэтому набросал небольшую заметку с несколькими способами принудительной ликвидации процесса. Кстати! Если ПК/ноутбук вообще не реагирует ни на одну из кнопок клавиатуры — то скорее всего зависла не только отдельно-взятая программа, но и в целом система.

Если так, то для перезагрузки/выключения устройства — зажмите кнопку питания (Power) на 4-5 сек. (разумеется, все несохраненные данные будут утеряны) .

Способы закрыть не отвечающую программу

Первый И так, самый очевидный и простой вариант — просто кликнуть правой кнопкой мышки по значку зависшей программы на панели задач Windows. После, во всплывшем окне достаточно будет выбрать вариант «закрыть окно» . Второй Если зависло полно-экранное приложение и до панели задач вы просто не можете добраться, попробуйте сочетания:

  • WIN, или WIN+TAB, или ALT+TAB, или ALT+Enter — чтобы свернуть окно;
  • ALT+F4, или ESC, или ALT+Q — для закрытия (выхода) из программы.

Перечисленные «горячие» сочетания клавиш работают с подавляющем большинством ПО для Windows.

Третий

Нажмите сочетание клавиш Ctrl+Shift+Esc (или Ctrl+Alt+Del) для вызова диспетчер задач. Далее во вкладке процессы найдите зависшую программу (процесс), кликните по ней правой кнопкой мыши и в появившемся выберите «Снять задачу» . Через 3-5 сек. программа должна быть закрыта.

Ctrl+Shift+Esc или Ctrl+Alt+Del — открыть диспетчер задач

Кстати, если рабочий стол после этого стал отображаться «как-то не так» (или вообще не видно) — перезапустите процесс «Проводник» (или «Explorer» на англ.).

Четвертый

Командная строка — универсальная штука, которая может помочь и с закрытием (ликвидацией) зависших процессов (программ). Кстати, если вы наловчитесь с ее использованием — закрывать зависшие полно-экранные приложения можно будет даже в «слепую» (когда на экране ничего не отображается).

  1. сначала нужно открыть командную строку;
  2. после ввести tasklist и нажать Enter;
  3. на экране появится список всех процессов (следует уточнить имя процесса/программы, которую нужно закрыть);
  4. после ввести taskkill /IM chrome.exe /f и нажать Enter (вместо «chrome.exe» — указывается имя нужного процесса) .

Убиваем процесс через командную строку

Пятый

Если вышеприведенные варианты не увенчались успехом, можно прибегнуть к утилите Process Hacker (ссылка на SourceForge). Это бесплатное ПО, которое покажет вам все запущенные процессы, их приоритеты, занимаемую память, нагрузку и пр.

Чтобы ликвидировать (закрыть) в нем любую из запущенных программ — нужно просто ее выбрать в списке, затем нажать ПКМ по ее имени и в появившемся окне выбрать «Terminate tree» (см. пример ниже ).

Process Hacker 2 — закрыть дерево процессов

Стоит отметить, что Process Hacker закроет сразу всё дерево процессов, связанных с этой программой (чего не делают многие др. программы. ).

Читайте также:
Antiplagiarism net настройка программы

Если у вас часто начала зависать какая-либо программа (еще хуже программы) — обратите внимание на:

  1. версию ПО (нежелательно использовать различные бета-версии). Проверьте, совместима ли версия ПО с вашей ОС;
  2. обновите драйвера (желательно с офиц. сайта);
  3. проверьте жесткий диск (если он начал «сыпаться» — подвисания будут идти постоянно);
  4. прогоните систему с помощью спец. «одноразовых» антивирусных продуктов;
  5. возможно, вашему приложению не хватает ОЗУ (посмотрите при работе ПО — сколько памяти занято в диспетчере задач).

Кроме этого, рекомендую ознакомиться с тематическими инструкциями (ссылки ниже).

1) Вылетает или зависает игра. Что делать?

2) Зависает ноутбук: что делать? Диагностика и устранение причин зависания

Источник: onecomp.ru

Почему зависает или выдает ошибку приложение при закрытии некоторых окон или программы?

Приложение, собранное на версии Qt 5.10.1 под Windows, иногда зависает при закрытии дочерних окон нажатием крестика. В выводе дебага это никак не отражается. Данная проблема возникает при тестировании только на одном из ноутбуков с Windows 10. На остальных ноутбуках проблема не воспроизводится. В каком направлении копать и где искать проблему, может ли это быть связано с несовместимостью конфигурации ОС или какого ПО установленного на проблемный ноутбук?
При сборке на версии Qt 5.11.1 под Mac при закрытии программы также возникает окно с ошибкой. Единственное, что выводится в консоли дебага это сообщения:
15:43:57: The program has unexpectedly finished.
15:43:57: The process was ended forcefully.
15:43:57: /Users/chi/Projects/quiz-smartcity/build-app-Desktop_Qt_5_11_1_clang_64bit-Release/quiz.app/Contents/MacOS/quiz crashed.
«There are still «8» items in the process of being created at engine destruction.»
Закрытие происходит QML методом: close();

Может ли это быть связано с тем, что необходим destructor для ранее созданных объектов или дочерних окон

5bd5b1224ce0f198463473.jpeg 5bd5b0fb30fc6434079681.png

  • Вопрос задан более трёх лет назад
  • 382 просмотра

Источник: qna.habr.com

Word 2016 зависает при закрытии документа

Видел пару раз такую штуку — при закрытии даже нового пустого документа Word 2016 начинает подвисать.

Office Word 2016

В данном случае все оказалось просто — мешали надстройки дополнительных программ.

Самое простое, чтобы исправить ситуацию, нужно отключить ненужные или даже все надстройки. В моем случае это помогло.

Отключить надстройки в Office 2016, 2019

Файл — Параметры — Надстройки — Надстройки COM — Перейти

Надстройки word

надстройки COM Office Word 2019

(сейчас на скриншоте надстроек нет)

Дальше выбираем ненужную надстройку и удаляем.

Перезапускаем Word и он должен начать выключаться быстро.

Еще одна из проблем, с которой я сталкивался в Word 2016 — долгое сохранение и подвисание при работе с много страничным файлом около 500 стр и размером ~10 Мб.

Ни установка обновлений, ни тюнинг, ничего не помогало. А в Word 2019 из коробки все работало значительно быстрее, такое же сохранение выполнялось за 2 секунды.

Выход в данном случае — это использование Office 2019.

Фразы: советы по работе с Word 2016, 2019. Решение проблемы с Word. Отключить надстройки, зависание.

Источник: nemcd.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru