Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 13 / 0
Регистрация: 04.01.2018
Сообщений: 58

Возможно ли добавить задержку перед закрытием программы?

25.02.2018, 23:54. Показов 2670. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Описал действие при закрытии программы через SetConsoleCtrlHandler.
Теперь возник вопрос - если я жму Ctrl+C, то программа, как я понимаю, успевает выполнить действие. Если я закрываю через крестик,то она видимо не успевает выполнить функцию и программа просто закрывается

Часто замечаю, что при закрытии определённых программ через диспетчер задач они немного висят. Можно ли добавить такую задержку в программу?

Добавлено через 5 минут
P.S. Добавление
C#
1
Task.Delay(1000).Wait();
к функции при закрытии не помогает при закрытии через диспетчер задач
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.02.2018, 23:54
Ответы с готовыми решениями:

Как реализовать задержку перед закрытием пакетного файла?
Нужна ваша помощь, нужна задержка перед закрытием bat, т.е определенное действие выполнилось, а затем задержка в 10-15 секунд и закрытие...

Предупреждение перед закрытием программы
Нужно чтобы при нажатии на крест в программе блокнот выводило сообщения (сохранить,нет,отмена). type TForm1 = class(TForm) ...

Сохранение информации перед закрытием
Есть форма. Есть какие-то переменные, которые задаются во время работы приложения. Нужно, чтобы при закрытии значения сохранялись. Потом...

3
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
26.02.2018, 00:47
Quntgo, не знаю насчёт C#, но вобще у всех приложений Windows есть события которые обрабатываются перед закрытием главной формы и самого приложения, типа: OnClose, OnCloseQuery и др.
Кроме того возможно организовать управление на уровне завершения и прекращения работы процесса, по этому вопросу рекомендую книгу: Джонсон М. Харт. Системное программирование в среде Windiws (правда она для C и C++), но это лишь дело в разнице интерфейса системных вызовов.
Вызов,
C#
1
Task.Delay(1000).Wait();
приостановит выполнение приложения, но не добавит времени для выполнения реальных задач (кроме случая когда приложение многопоточное). Если приложение многопоточное, то в одном потоке будет пауза, а другой (возможно) будет отрабатывать реальные процессы.
В общем случае, у операционной системы всегда больше привилегий чем у пользовательского приложения, поэтому вызовы ОС могут завершить приложения принудительно, не дав им отработать до завершения некоторых процессов. Те паузы которые Вы наблюдаете при принудительном завершении приложений могут быть связаны с задержкой обращения к диску (особенно если у приложения есть открытые или заблокированные файлы на диске жёстком), или некоторыми другими процессами которые запущены в асинхронном режиме, например, связь по COM-порту или USB и др.
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
10.03.2018, 14:23
В консольном приложении такой возможности нет, т.к. само приложение не является оконным.
Окно консольного приложения это внешний терминал, в котором выполняется приложение.
0
 Аватар для RaevskiAnatoly
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
17.03.2018, 20:38
Цитата Сообщение от Quntgo Посмотреть сообщение
Если я закрываю через крестик,то она видимо не успевает выполнить функцию и программа просто закрывается
Вроде функция вообще выполняться не должна
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2018, 20:38
Помогаю со студенческими работами здесь

Действие перед закрытием приложения
Мне нужно, что бы перед закрытием приложения информация из TextBox записалась в файл. Как записать в файл я поняла ...

Запрос перед закрытием приложения
Как сделать так, чтобы после попытки закрытия программы появлялось диалоговое окно, но окна самой программы при этом не закрывались?...

Alert перед закрытием сайта
Здравствуйте! Подскажите пожалуйста, как это называется. При закрытие вкладки с определенной страницей, вначале высвечивается похожее...

Выполнить действия перед закрытием
Подскажите обработчик событий для флеша который происходит непосредственно перед закрытием окна, для примера, мы закрываем окно и при этом...

Отработать метод перед закрытием окна
Здравствуйте, какие образом можно запустить какой-нибудь метод(в моем случае, он нужен для сериализации) перед закрытием окна? Нашел на...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru