|
13 / 13 / 4
Регистрация: 04.11.2012
Сообщений: 55
|
|
Как защитить фоновые операции от преждевременного прерывания путем закрытия приложения?23.02.2014, 14:16. Показов 1363. Ответов 8
Метки нет (Все метки)
Добрый день. Выполняется ряд методов которые обращаются к другим сервисам, после к бд.. и тд.. В следсвтвии чего, пользовательский интерфейс словно подвисает. Я так понимаю(в теории) данные методы можно поместить в отдельный поток, а вот что делать тогда с выполнением методов. Их выполнение должно быть выполненно до конца.А пользователь может закрыть программу раньше. Есть ли какие либо решения что бы не смотря ни на что, если пользователь запустил процесс выполнения, закрытие, выполнение других методов не могли помешать нормально работе начатого? (В результате буду это все выполнять под Asp.Net, но так как в том разделе помочь не могут, а каркас C# общий, решил задать здесь.. Вдруг пожет кто то)
0
|
|
| 23.02.2014, 14:16 | |
|
Ответы с готовыми решениями:
8
Как защитить собственный процесс от закрытия
Как защитить базу путем привязки к серийному номеру компьютера? |
|
44 / 44 / 19
Регистрация: 20.01.2014
Сообщений: 87
|
||
| 23.02.2014, 14:34 | ||
|
Деструкторы в самом общем виде короче.
0
|
||
|
13 / 13 / 4
Регистрация: 04.11.2012
Сообщений: 55
|
||
| 23.02.2014, 14:58 [ТС] | ||
|
А как это связано с деструкторами я что то не понял?
Добавлено через 8 минут
0
|
||
|
44 / 44 / 19
Регистрация: 20.01.2014
Сообщений: 87
|
||||||
| 23.02.2014, 15:03 | ||||||
Сообщение было отмечено Andrey_y как решение
Решение
Ну например Finilize() вызывается сборщиком мусора (в общем виде перед удалением объекта), а если закрыть приложение, то перед закрытием запуститься сборщик мусора, а там можно доделать всё что не дали сделать спокойно на фоне.
Do you understand me? Вот создайте экземпляр и попробуйте закрыть приложение:
1
|
||||||
|
13 / 13 / 4
Регистрация: 04.11.2012
Сообщений: 55
|
|
| 23.02.2014, 15:08 [ТС] | |
|
0
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
|
||
| 23.02.2014, 16:00 | ||
|
1. Класс, в котором должна быть усложнена логика деструктора, наследовать от SafeHandle, либо CriticalFinalizerObject - так как деструкторы этих классов компилируются при сборке проекта сразу же в объектный код, (а не в IL), то есть их выполнение гарантированно произойдет (вроде бы) даже при убийстве через task manager. НО это нужно проверить.
0
|
||
|
|
|
| 23.02.2014, 16:20 | |
|
В принципе, если потоку поставить IsBackground=true, то он гарантированно закроется после закрытия основного приложения...
Сам так сделал, все работает. Закрываешь форму, и поток прерывается, практически сразу.
0
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
|
|
| 23.02.2014, 16:22 | |
|
insite2012, немного не вникли, наоборот надо сделать IsBackground = false,чтобы гарантировать завершение начатой работы; для Thtread класса - они по умолчанию основные, а не фоновые.
0
|
|
|
|
|
| 23.02.2014, 16:33 | |
|
Да, согласен. Но тогда лучше вообще отменить закрытие программы и дождаться сигнала из потока о том, что он закончил свою работу и только потом закрыть приложение. Иначе получиться не очень красивая ситуация, программы самой уже нет, а поток висит и что-то продолжает делать...
0
|
|
| 23.02.2014, 16:33 | |
|
Помогаю со студенческими работами здесь
9
Фоновые приложения Прерывания закрытия книги в макросе Не открывается вкладка Фоновые приложения Подкиньте идею как защитить сервер от эмуляции запросов не из приложения Как правильно написать кнопку закрытия приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
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, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|