Thread.DisableComObjectEagerCleanup 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
关闭当前线程的运行时可调用包装器(RCW)的自动清理。
public:
void DisableComObjectEagerCleanup();
public void DisableComObjectEagerCleanup();
[System.Security.SecurityCritical]
public void DisableComObjectEagerCleanup();
member this.DisableComObjectEagerCleanup : unit -> unit
[<System.Security.SecurityCritical>]
member this.DisableComObjectEagerCleanup : unit -> unit
Public Sub DisableComObjectEagerCleanup ()
- 属性
注解
默认情况下,公共语言运行时(CLR)会自动清理运行时可调用包装器。 CLR 在清理期间泵送消息,这可能会导致少数满足以下异常条件的应用程序出现重新进入问题:
应用程序执行自己的消息泵送。
应用程序需要精确控制消息泵的发生时间。
此类应用程序可以使用 DisableComObjectEagerCleanup 此方法来防止 CLR 自动回收运行时可调用包装器。
在线程上调用此方法时,无法为该线程重新启用自动清理。 当应用程序准备好清理运行时可调用包装器时,请使用该方法 Marshal.CleanupUnusedObjectsInCurrentContext 指示运行时清理当前上下文中的所有运行时可调用包装器。 执行方法时发生消息泵送。