atexit,c退出代理#

问题描述:

在C++中有一个函数atexit,您可以在这里注册应该在系统退出时运行的函数。 C#中有没有类似的事件?atexit,c退出代理#

更新: AppDomain.ProcessExit似乎没有捕获Ctrl-C或Ctrl-Break。任何人都知道这件事?

您可以检查AppDomain类的ProcessExitDomainUnload事件。

+0

似乎并没有赶上按Ctrl-C虽然。知道这些事情吗? – 2009-11-05 11:35:24

+1

@Mats:CTRL + C似乎以某种不会引发这些事件的方式关闭进程。然而,该特定的组合键会引起Console.CancelKeyPress事件。因此,我认为AppDomain.ProcessExit和Console.CancelKeyPress的组合应该覆盖大多数退出场景。 – 2009-11-05 12:35:00

如果你正在运行一个WinForms应用程序,你可以添加一个侦听的Application.ApplicationExit事件

还有,如果你已经WinForms应用程序的Application.ApplicationExit事件。对于WPF,有Application.Exit

+0

我知道如何关闭应用程序,我很感兴趣的是如何在事件发生时附加事件。谢谢你。 – 2009-11-05 11:37:34

+0

对不起,关于控制台应用程序的问题是错误的(我编辑过)。剩下的两个引用是当您退出应用程序时发生的事件(WinForm/WPF)。 – andyp 2009-11-05 11:46:29

+0

很酷。不幸的是我需要它在控制台模式..可能应该提到这一点。 – 2009-11-05 13:43:24

也许答案,这样可以帮助你:

+0

因此可能需要同时捕获这两个事件,ProcessExit和ConsoleCancelEventHandler。只需要一个总是被称为的事件就会很整洁。恩,好吧。 – 2009-11-05 11:39:12

+0

可能。但是这应该不是什么大问题,只需做一些你需要做的事情就可以在一个单独的方法中完成,这个方法由eventhandlers或者其他东西调用:) – Svish 2009-11-05 14:21:27