代码之家  ›  专栏  ›  技术社区  ›  Olivier MATROT

COM可调用包装和.NET对象生存期

  •  3
  • Olivier MATROT  · 技术社区  · 15 年前

    我有一个C+..NET程序集,它从C++ COM客户机调用。当客户端进程明确释放COM对象时,CCW释放它的内部引用,从而使.NET对象符合垃圾收集的条件。

    如果.NET对象有一个打开日志文件的静态构造函数怎么办?是否有一个优雅的解决方案来关闭日志文件而不需要客户机的显式请求?

    短暂性脑缺血发作

    2 回复  |  直到 15 年前
        1
  •  1
  •   Olivier MATROT    15 年前

    在使用appdomain.processexit事件处理程序进行一些测试之后,关闭日志文件似乎是一个不错的选择。

        2
  •  0
  •   x0n    15 年前

    如果你不想修改COM客户机,那么你就没有任何确定的接近魔法了。最终文件句柄 在CCW失去GC根之后,当GC调用句柄的终结器时(假定它是一个文件流),在将来某个时候关闭它。

    -奥辛