方法System.Runtime.InteropServices.Marshal.ReleaseCOMObject不会终止所有对象

时间:2011-03-09 16:13:18

标签: .net com com-interop

为什么注册到COM +组件的dll“激活计数”等于1,即使调用者进程(.net 2.0 Assembly)始终使用方法System.Runtime.InteopServices.Marshal.ReleaseCOMObject()

如果计数器大于1,则ReleaseCOMObject实际上会取消激活对象,但在超时到期之前始终保持一个对象处于活动状态。

1 个答案:

答案 0 :(得分:0)

这与SO

上的另一个问题非常相似
  

Why use FinalReleaseComObject instead of ReleaseComObject?

通常,剩余的引用计数表示存在另一个托管对象,该托管对象尚未进行垃圾回收。 (通常是RCW)