次の方法で共有


Thread.DisableComObjectEagerCleanup メソッド

定義

現在のスレッドのランタイム呼び出し可能ラッパー (RCW: Runtime Callable Wrapper) の自動クリーンアップをオフにします。

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 はクリーンアップ中にメッセージをポンプします。これは、次の異常な条件を満たすいくつかのアプリケーションで再入の問題を引き起こす可能性があります。

  • アプリケーションは、独自のメッセージ ポンプを実行します。

  • アプリケーションは、メッセージ ポンプが発生した場合に正確に制御する必要があります。

このようなアプリケーションでは、 メソッドを使用して、CLR がランタイム呼び出し可能ラッパーの自動再利用を DisableComObjectEagerCleanup 行うのを防ぐ可能性があります。

このメソッドがスレッドで呼び出された場合、そのスレッドに対して自動クリーンアップを再び有効にすることはできません。 アプリケーションでランタイム呼び出し可能ラッパーをクリーンアップする準備ができたら、 メソッドを使用して、現在のコンテキスト内のすべてのランタイム呼び出し可能ラッパーをクリーンアップするようにランタイム Marshal.CleanupUnusedObjectsInCurrentContext に指示します。 メッセージ ポンプは、 メソッドの実行中に発生します。

適用対象