誰かがタスク マネージャーを使用して、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);
}