0

メモリ リークの原因となる .Net より前の時代にのみ作成された ActiveX コンポーネントを使用しています。すべての .Net 関連インスタンス (AxHost など) は適切に解放されますが、アンマネージ メモリは増え続けます。(.Net mem プロファイラーによる)

.Net 内からアンマネージ メモリを強制的に解放する方法はありますか? これは、手に負えない ActiveX コンポーネントを処理する方法で解決できるのでしょうか?

コンポーネントは Dynavix 2 (dyDisplay、PictureDocument、AxDYNAview) です。

4

1 に答える 1

1

残念ながら、.Net ランタイムはアンマネージ メモリの責任を負いません。

できることは、プログラムを作成し、IPC Remotingを使用して 2 つの間で通信することです。コントロールが不要になったら、2 番目のプログラムを強制終了できます (または、メモリ使用量が大きくなりすぎたときに強制終了します)。

Windows スクリーンセーバーがプレビュー モードで行うのと同じトリックを使用して、セカンダリ アプリケーションのウィンドウをコントロールでホストすることもできます。

于 2011-08-03T10:48:14.643 に答える