Thread.DisableComObjectEagerCleanup 方法

定义

对于当前线程关闭运行时可调用包装 (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 方法指示运行时清理当前上下文中的所有运行时可调用包装器。 当方法执行时,将发生消息泵。

适用于