- PR -

Formを閉じる際のリソース解放について

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-07-10 19:24
引用:

梶さんの書き込み (2006-07-10 18:28) より:

通常は例外など出ないので、フォームを開く処理周りを調べてみたところ


結局、リソースは関係なく、例外が原因だったようですね > 画面の描画がおかしくなる件
例外のインスタンス生成時は、描画が止まります。

いずれ、GC が回収してくれるというのを加味すれば、
使用メモリ増加するという件は、別に問題のない範疇かもしれません。

本当に、「メモリ リーク」 を起こしているのであれば、別ですが... (でも、普通は起きません)

引用:

単純にフォームを「Form f = new Form()」で作成しているわけではなく

-----
Assembly assembly = Assembly.LoadFrom(FileName);
Type type = assembly.GetType(ClassName, true);
object instance = Activator.CreateInstance(type,Args);
Form f = (Form)instance;
-----

のように、DLLからフォームのインスタンスを取得している事が判明しました。
もしかしたら、この辺りで、リソースの解放忘れか、もっと他にまずい事をしてないか
鋭意調査中です。


はい、この別のアセンブリからロードしている Form 自体を調査してください。
他に怪しいところがないのであれば、ビンゴだと思います。

# それにしても、何ゆえに、Assembly.LoadFrom メソッドを...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2006-07-31 15:35
すっかり間が空いてしまいましたが、一応最終報告という事で・・・

DLLからフォームのインスタンスを取得している箇所に絞って
色々と調査を行ってみたのですが、問題箇所の特定には至らず
藁をも掴む思いで『DevPartner』というテストツール(?)の
評価版を入手し検証を行ってみました。

すると・・・
エラーもメモリリークもリソースリークも無いという結果が・・・

取り敢えずこの事を元請けの担当者に報告して、判断を仰ぐ
という事になりました。
なので、この件は一応、クローズという事にしたいと思います。

皆さん、色々と有難うございました。

スキルアップ/キャリアアップ(JOB@IT)