代码之家  ›  专栏  ›  技术社区  ›  Shimrod

marshal.releaseComObject是否调用垃圾收集器?

  •  0
  • Shimrod  · 技术社区  · 14 年前

    今天一位同事问我这个问题,在网上找不到任何线索… 有人能告诉我如果打电话 Marshall.ReleaseComObject() 直接调用垃圾收集器? 据我所知,它只删除COM引用,然后G.C.在下一次传递时清理内存,但我可能会弄错…

    提前感谢您的帮助!

    1 回复  |  直到 14 年前
        1
  •  3
  •   Brian Rasmussen    14 年前

    通过查看Reflector中ReleaseComObject的实现,可以看出它不是这样的。它最终调用了一个本机方法,但是如果这能以某种方式强制进行垃圾收集,我会感到惊讶。

    这个 documentation of RCW

    运行时对RCW执行垃圾收集。

    我将解释为RCW由常规GC处理。