当有人使用任务管理器结束实例化 COM 对象的 .NET 进程时,AFAIK 无法调用Marshal.FinalReleaseComObject
,或事件处理块。try {} finally {}
using {}
下次我启动应用程序时,COM 对象处于不可用状态,我需要重新启动机器以使其再次工作。
我Marshal.BindToMoniker
用来实例化对象。
我做错了什么,我错过了什么吗?
我尝试了 Saeed 的建议,但没有奏效
private const int WM_CLOSE = 0x0010;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_CLOSE)
{
logger.Info("WM_CLOSE");
Marshal.FinalReleaseComObject(comObject);
}
base.WndProc(ref m);
}