私はvb.net winformsアプリケーションを持っています。サードパーティのコントロールによって引き起こされるメモリリークがあります。私は、メモリリークを解消する代わりに、削減するという選択肢が残っています。プログラムでwinフォームをユーザーコントロールに設定しないでください。
フォームには、Friend WithEventsとして宣言されたユーザーコントロールがいくつかあります。フォームがメモリ内にあり、ユーザーコントロールへの参照を保持しているため、フォームが閉じられたときにGCedされません。しかし、私がdisposeに何もないユーザーコントロール参照を設定すると、メモリリークが減少します。
これをアプリケーションの1つではなく、アプリケーション全体に展開したいと考えています。どのように私は、すべてのユーザーコントロールをスキャンし、処分に何も設定する反射を使用するだろうか?面白いことに、ユーザーコントロールは "Friend WithEvents"という署名を使って宣言されています。スキャン中に何とかこれを使用することは可能ですか?
リフレクションは必要ありません。自分で作成したコントロールの「Dispose」は必要ありません。他のものが実際のUserControlである場合、子コントロールの処理は組み込まれています(動的コントロールを行っている場合を除きます)。 – Plutonix