Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.07.2023
Сообщений: 17
.NET 4.x

Программа не даёт Windows завершить работу

13.03.2024, 22:13. Показов 600. Ответов 6

Студворк — интернет-сервис помощи студентам
Плавающая проблема:
Иногда, при завершении работы, пишет, что приложение препятствует выключению.
И висит в таком состоянии бесконечно, пока не нажмёшь системную кнопку принудительной перезагрузки/выхода.

Смотрю логи, а там даже нет вызова Form_Closing.

Попробовал подписаться на завершение сессии:
C#
1
SystemEvents.SessionEnding += SystemEvents_SessionEnding;
Тоже не вызывается.

В программе несколько потоков, может из-за них она не даёт себя закрыть. Но как их закрыть, если это событие никак не обработать. Что можно сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2024, 22:13
Ответы с готовыми решениями:

Windows не дает завершить форматирование (на флешке)
Ребят,такая проблема:Отформатировал флешку,на следующий раз просит тоже отформатировать я это сделал через "Быстрое(очистка...

При получении WM_ENDSESSION Windows не дает корректно завершить программу
Всем привет! В моем приложении есть скрытое окно, которое получает от винды сообщения, т.е. ui для пользователя нет (запуск через...

Завершить работу программы
Здравствуйте! Помогите решить проблему. Есть старая программа, написанная на vb6 в скомпилированном виде, исходники я давно уже...

6
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,607
Записей в блоге: 3
13.03.2024, 22:55
Цитата Сообщение от zapominai Посмотреть сообщение
Что можно сделать?
Научится контролировать потоки, которые сам создаешь.
0
0 / 0 / 0
Регистрация: 10.07.2023
Сообщений: 17
14.03.2024, 09:04  [ТС]
Они управляются через CancelationToken. Я могу их остановить и корректно закрыть. Но события, где всё это можно сделать, нет.

Какое управление вы имеете в виду?
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,557
Записей в блоге: 4
14.03.2024, 09:20
Цитата Сообщение от zapominai Посмотреть сообщение
Но события, где всё это можно сделать, нет.
Напишите своё событие и при закрытии программы вызывайте его, а в обработчике закройте все работающие потоки.
0
0 / 0 / 0
Регистрация: 10.07.2023
Сообщений: 17
14.03.2024, 12:04  [ТС]
В том-то и дело, при завершении работы виндовс, в моей программе не вызываются никакие события.

Не пойму из-за чего такое может быть и как это исравлять.
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,557
Записей в блоге: 4
14.03.2024, 12:30
Цитата Сообщение от zapominai Посмотреть сообщение
В том-то и дело, при завершении работы виндовс, в моей программе не вызываются никакие события.
ОС при завершении работы пытается закрыть все работающие приложения. Вот и перехватите завершение работы приложения и отключите все свои потоки.
0
0 / 0 / 0
Регистрация: 10.07.2023
Сообщений: 17
14.03.2024, 20:05  [ТС]
А как его перехватить, если ни одно из событий, связанных с закрытием приложения, не вызывается?

form_closing
form_closed
SystemEvents.SessionEnding += SystemEvents_SessionEnding
Application.ApplicationExit += OnApplicationExit

Что-то ещё есть?

Добавлено через 1 час 12 минут
Всё, разобрался. Забыл, что одной из форм в программе поставил обработку закрытия, не дающую закрыть форму, а просто скрывающую, чтобы заново не перерисовывать весь контент. В итоге добавил проверку:

C#
1
if (e.CloseReason == CloseReason.WindowsShutDown)
И всё стало нормально.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2024, 20:05
Помогаю со студенческими работами здесь

Завершить работу приложения
Доброго дня. Пытаюсь потихоньку осваивать кросс-платформенную разработку, и в своих потугах добрался до этапа, когда при определенных...

Завершить работу процесса
Помогите решить проблему. Запускаю игру (Unturned), при подключении к серверу, она намертво зависает. Но это ерунда. Проблема в том, что...

Завершить работу сервиса
Подскажите пожалуйста, почему после того, как я на панели уведомлений нажимаю на кнопку "закрыть" сервис снова вызывает...

Завершить работу консоли
Может немного правильно сформулировал вопрос в заголовке.. но должно быть что то типо такого вот на с++ While(cin>>x){ }...

Завершить работу метода
Всем привет, есть вопрос: есть .dll которая позволяет транслировать звук с микрофона на ip, также она может принимать данные и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru