一位同事今天被问到这个问题,在互联网上找不到任何线索......
有人可以告诉我,如果调用Marshall.ReleaseComObject()
直接调用垃圾收集器吗?
据我了解,它只删除COM引用,然后G.C.在下一次通过时清理记忆,但我可能会弄错......
提前感谢您的帮助!
答案 0 :(得分:3)
在Reflector中查看ReleaseComObject的实现表明它没有。它最终调用了一个本机方法,但如果可能以某种方式强制垃圾收集,我会感到惊讶。
运行时在RCW上执行垃圾收集。
我会解释为RCW由常规GC处理。