c# - 在应用程序崩溃时释放 com 对象

标签 c# .net com

有没有办法在应用程序崩溃时释放 com 对象?

我有以下代码:

  public class Application
    : IDisposable
  {
    private bool disposed = false;
    private object realApplication;

    public void Dispose()
    {
      Dispose(true);
    }

    private void Dispose(bool disposing)
    {
      if (!disposed) {
        if (realApplication!=null) {
          Marshal.ReleaseComObject(realApplication);
          realApplication = null;
        }
        disposed = true;
      }
      GC.SuppressFinalize(this);
    }

    ...


    ~Application()
    {
      Dispose(false);
    }
}

但它仅在正常应用程序关闭时释放 com 对象。

最佳答案

尝试让您的Application 类继承CriticalFinalizerObject .

关于c# - 在应用程序崩溃时释放 com 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3192784/

相关文章:

c# - 路由配置不起作用

.net - 如何获取.NET分配的IP地址和端口号

具有动态接口(interface)的 C# COM 对象

com - C# Visual Studio : How to have multiple developers on a solution that references Office?

c++ - 过时函数的标准 COM HRESULT 是什么?

c# - 进度条没有显示进度结果?

c# - 如何以编程方式从远程共享点服务器 checkout 文档 (c#)

c# - 无法构建 Net Core 2.1 Web App

c# - 如何使用 Interop 和 C# 将 *.ppt、*.pptx 文件保存为 *.wmv?

c# - .NET (C#) 中的 "StandardIn has not been redirected"错误