如何从库程序集订阅Application.ApplicationExit

时间:2012-11-11 20:36:49

标签: c# .net vb.net

有没有办法订阅这个事件或类似的东西,所以我可以在对象最终确定之前执行一些清理代码?

2 个答案:

答案 0 :(得分:3)

事件是静态的,因此在DLL中使用它不会导致任何问题。

请注意,只有在Winforms应用程序中实际使用了类库时才会触发该事件。如果您公开仅可从Winforms应用程序使用的功能,则只能确定这一点。像自定义控件或UserControl一样。

替代方案是AppDomain事件,DomainUnload和ProcessExit。或者只是期望主应用程序让你知道关机。这通常是更好的选择,您不一定知道应用程序退出的原因。例如,您不希望在硬崩溃时保存设置。请注意ApplicationSettingsBase类如何遵循该模式,您必须显式调用其Save()方法。

答案 1 :(得分:1)

您以与任何事件相同的方式订阅此活动。

ApplicationExit MSDN页面上的示例很清楚:

Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

private void OnApplicationExit(object sender, EventArgs e) {
    // do your cleanups
}