Marshal.FinalReleaseComObject(Object) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
通过将 运行时可调用包装器(RCW) 的所有引用设置为 0 来释放其引用计数。
public:
static int FinalReleaseComObject(System::Object ^ o);
[System.Security.SecurityCritical]
public static int FinalReleaseComObject(object o);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static int FinalReleaseComObject(object o);
public static int FinalReleaseComObject(object o);
[<System.Security.SecurityCritical>]
static member FinalReleaseComObject : obj -> int
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member FinalReleaseComObject : obj -> int
static member FinalReleaseComObject : obj -> int
Public Shared Function FinalReleaseComObject (o As Object) As Integer
参数
- o
- Object
要发布的 RCW。
返回
与参数关联的 o RCW 引用计数的新值,如果发布成功,则为 0(零)。
- 属性
例外
o 不是有效的 COM 对象。
o 是 null。
注解
该方法 FinalReleaseComObject 释放对 COM 对象的托管引用。 调用此方法等效于在循环中调用 ReleaseComObject 该方法,直到返回 0(零)。
当 COM 对象的引用计数变为 0 时,COM 对象通常会释放,尽管这取决于 COM 对象的实现,并且超出了运行时的控制范围。 但是,RCW 仍可存在,等待垃圾回收。
COM 对象在与基础 RCW 分离后无法使用。 如果在 RCW 的引用计数变为 0 后尝试对 RCW 调用方法,将引发一个 InvalidComObjectException 方法。