方法 System.Runtime.InteopServices.Marshal.ReleaseCOMObject 不会杀死所有对象

问题描述 投票:0回答:1

为什么注册到 COM+ 组件中的 dll 的“激活计数”等于 1,即使调用者进程(.net 2.0 程序集)始终使用该方法

System.Runtime.InteopServices.Marshal.ReleaseCOMObject()

ReleaseCOMObject 如果计数器大于 1,则真正停用对象,但始终保持一个对象处于活动状态,直到超时为止。

.net com com-interop
1个回答
0
投票

这与 SO 上的另一个问题非常相似

为什么使用 FinalReleaseComObject 而不是 ReleaseComObject?

通常剩余的引用计数表明有另一个托管对象持有尚未被垃圾收集的引用。 (通常是 RCW)

© www.soinside.com 2019 - 2024. All rights reserved.