Marshal.CleanupUnusedObjectsInCurrentContext メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のコンテキストで割り当てられたすべてのランタイム呼び出し可能ラッパー (RCW) をクリーンアップすることをランタイムに通知します。
public:
static void CleanupUnusedObjectsInCurrentContext();
public static void CleanupUnusedObjectsInCurrentContext ();
[System.Security.SecurityCritical]
public static void CleanupUnusedObjectsInCurrentContext ();
static member CleanupUnusedObjectsInCurrentContext : unit -> unit
[<System.Security.SecurityCritical>]
static member CleanupUnusedObjectsInCurrentContext : unit -> unit
Public Shared Sub CleanupUnusedObjectsInCurrentContext ()
- 属性
注釈
相互運用システムは、RCW をクリーンしようとしたときにメッセージをポンプします。 これにより、シングルスレッド アパートメント (STA) RCW のクリーンアップが、ポンプの頻度が十分でないアプリケーションを含め、すべてのアプリケーションで確実に行われます。 しかし、ポンプを適切に行う一部のアプリケーションは、ポンプが発生する場所に非常に敏感です。 相互運用システムがこれらのアプリケーションで予期しない場所でメッセージをポンプすると、アプリケーションで診断が困難な再入の問題が発生する可能性があります。 したがって、アプリケーションは、特定の STA に対して独自のポンプを制御し、RCW のクリーンを制御できる必要があります。
ただし、開発者は多くの場合、アプリケーション内のスレッドのサブセットのみを制御するため、すべてのスレッドが適切にポンピングされていることを確認することはできません。
この問題を解決する方法は次のとおりです。
Thread.DisableComObjectEagerCleanup RCW の自動クリーンアップと、スレッドごとに発生するメッセージ ポンプをオフにするには、 メソッドを使用します。 これにより、開発者は自動クリーンと対応するメッセージ ポンピングをオプトアウトできます。
メソッドをCleanupUnusedObjectsInCurrentContext使用して、現在のコンテキストで割り当てられているすべての RCW をクリーンするようにランタイムに通知します。 このコンパニオン メソッドを使用すると、開発者は、ランタイムが現在のコンテキストでクリーンアップを実行するタイミングを正確に制御できます。
適用対象
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示