Захват завершения процесса (диспетчер задач) в WPF

У меня есть приложение WPF. Когда приложение закрывается, я выполняю некоторые действия по обновлению/вставке в базу данных, которые являются обязательными для моего приложения. Но если мое приложение принудительно закрывается путем уничтожения процесса в диспетчере задач, я не могу выполнять операцию в базе данных.

Я выполняю обновление/вставку записей в БД в событии «Выход» в «App.xaml.cs», это событие не запускается, когда приложение уничтожается в диспетчере задач. При поиске я обнаружил, что если процесс убит на вкладке «Процесс» Диспетчер задач приложение закрывается сразу, не дожидаясь ответа приложения.

Один из способов, которым мы можем зафиксировать завершение процесса, — запустить службу, которая проверяет этот процесс приложения.

Есть ли другой способ поймать завершение процесса в том же приложении, т.е. не запуская другую службу для проверки?

Заранее спасибо..


person salkav1804    schedule 21.02.2011    source источник


Ответы (1)


TerminateProcess не дает вашему приложению шанса обнаружить завершение. Вам нужно внешнее приложение/служба, которое отслеживает, или, что еще лучше, вам нужно убрать причину, по которой ваши пользователи должны убивать процесс с помощью диспетчера задач.

person Erik    schedule 21.02.2011