在WPF中捕获进程终止(任务管理器)
我有一个 WPF 应用程序。当应用程序关闭时,我会在数据库中执行一些更新/插入操作,这对于我的应用程序是强制性的。但是,如果通过终止任务管理器中的进程来强制关闭我的应用程序,我将无法在数据库中执行操作。
我正在“App.xaml.cs”中的“退出”事件中的数据库中进行更新/插入记录,当应用程序在任务管理器中被杀死时,该事件不会被触发。通过搜索,我发现如果一个进程在进程选项卡中被杀死任务管理器应用程序立即关闭,无需等待应用程序响应。
我们捕获进程终止的一种方法是运行一个服务来检查该应用程序进程。
是否有其他方法可以捕获同一应用程序中的进程终止,即不运行另一个服务来检查。
提前致谢..
I have a WPF application.when the application closes i do some update/insert action in database which is mandatory for my application.But if my application is forcibly closed by killing the process in taskmanager, i am not able to do operation in database.
I am doing the updating/insertingrecords in DB in "Exit" Event in "App.xaml.cs",this event is not fired when the application is killed in taskmanager.By searching i found that if a process is killed in Process Tab of Task Manager the application closes immediately without waiting for the application to respond.
One way we can capture the process termination is by having a service running which checks this application Process.
Is there any other way to catch the process termination within the same application i.e By not having another service running to check.?
Thanks in advance..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
TerminateProcess 不会给您的应用程序任何检测终止的机会。您需要一个外部应用程序/服务来监视,或者更好的是您需要消除用户必须使用任务管理器终止进程的原因。
TerminateProcess does not give your application any chance to detect termination. You need an external application/service that monitors, or better yet you need to take away the reason your users have to kill the process using Task Manager.