以下代码可解决问题:
写一个被第三方调用的类库dll时,无法获得第三方窗体关闭事件。此时用到这种解决方案
在类库入口构造函数中绑定事件
AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
事件中定义你要执行的代码:
//程序关闭时
private void CurrentDomain_ProcessExit(object sender, EventArgs e)
{
if (bHasInit)//初始化判断
{
string msg = string.Empty;
CmdFun.WriteLog("程序进程终止,执行销毁!", CmdFun.LogType.MSG, ref msg);
// do your something
CmdFun.WriteLog("销毁完成!", CmdFun.LogType.MSG, ref msg);
}
}
外部程序关闭时将会执行此事件