当某人使用任务管理器结束实例化了COM对象的.NET进程时,据我所知,没有办法在try {} finally {}、using {}或事件处理块中调用Marshal.FinalReleaseComObject。下次启动应用程序时,COM对象处于不可用状态,我需要重新启动机器才能使其工作。
我使用Marshal.BindToMoniker来实例化对象。
我做错了什么?有什么我错过的东西吗?
我尝试了Saeed的建议,但它没有起作用。
我使用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);
}