C# · 12月 26, 2021

c# – 处理Windows应用程序的结束进程

是否可以在同一 Windows应用程序本身捕获Windows应用程序的任务管理器结束进程?我正在使用一个C#2.0的胜利应用程序,我想做一些数据库处理(在DB中将标志从“Y”更改为“N”).解决方法 不,不可能挂起操作系统的决定结束一个进程.注意,这不是由任务管理器完成的,结束一个进程是内核的责任.

你需要做两件事情:

>将事件处理程序连接到告诉应用程序退出的普通用户界面消息.使用这些事件来持久保存数据,免费资源,否则退出干净.
>酌情处理异常以捕获错误并清理并保存数据.

这里有三个链接到雷蒙德的博客,解释为什么你不能做你所要求的.

> Why can’t you trap TerminateProcess?
> Why do some process stay in Task Manager after they’ve been killed?
> The arms race between programs and users

另外,我发现一个类似的StackOverflow问题here.