有没有办法订阅这个事件或类似的东西,所以我可以在对象最终确定之前执行一些清理代码?
答案 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
}