Thread.DisableComObjectEagerCleanup 方法

定義

關閉目前執行緒之執行階段可呼叫包裝函式 (RCW) 的自動清除功能。

C#
public void DisableComObjectEagerCleanup ();
C#
[System.Security.SecurityCritical]
public void DisableComObjectEagerCleanup ();
屬性

備註

根據預設,common language runtime (CLR) 會自動清除執行時間可呼叫包裝函式。 CLR 會在清除期間發送訊息,這可能會導致一些符合下列不尋常準則的應用程式發生重新進入的問題:

  • 應用程式會執行自己的訊息提取。

  • 應用程式必須在訊息提取發生時精確控制。

這類應用程式可以使用 DisableComObjectEagerCleanup 方法,以防止 CLR 自動回收執行時間可呼叫包裝函式。

線上程上呼叫這個方法時,無法重新啟用該執行緒的自動清除。 當您的應用程式準備好清除執行時間可呼叫包裝函式時,請使用 Marshal.CleanupUnusedObjectsInCurrentContext 方法來指示執行時間清除目前內容中的所有執行時間可呼叫包裝函式。 當方法執行時,就會發生訊息泵。

適用於

產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1