【发布时间】:2012-12-06 17:50:00
【问题描述】:
我正在使用 VS 2010,winForm。
有人可以建议程序过程结束时如何运行方法吗?
我试过了:How to run code before program exit? 解决方案,但如果我在任务管理器中结束进程它没有被调用,它只能通过“关闭按钮”关闭表单,是否可以处理此类事件?
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
AppDomain.CurrentDomain.ProcessExit += new EventHandler (OnProcessExit);
}
public static void OnProcessExit(object sender, EventArgs e)
{
if (Utils.RemindTime != DateTime.MinValue)
Utils.SetStartup(true);
}
【问题讨论】:
-
如果你杀了进程,你就杀了进程。没有任何东西可以执行任何任务。
-
请参阅this question 以获得详细答案。简而言之:这是做不到的
-
你能把代码直接放在
Application.Run行下面,而不是设置事件处理程序吗?如果这不起作用,请尝试将事件处理程序代码放在Application.Run之前。 -
@Matthew 这只在进程被很好地拆除时才有效,而不是当它被操作系统强行杀死时。