■No32225 (渋木宏明(ひどり) さん) に返信
>>disposingパラメータは常にTrueにて呼び出しがかかっているため、問題ないと思います。
>
> そりゃたまたまかもしれないので、何の保証にもならないです>常に True
>
> disposing の値によって HogeHoge() の呼び出しを制御するか、HogeHoge() が disposing がどんな値であっても問題なく動作することを保証するべきです。
すいません。深く考えておりませんでした。
disposingがfalseの場合とは、デストラクタのときなのですね・・・。勉強になります。
デストラクタのときに、HogeHoge()メソッドが呼び出されると、問題なく動作することは保証できないです。
DBアクセスの処理が入ってますので、どうなることやら…。
そう考えるとHogeHoge()メソッドはDispose時に実行されたいので、disposingがTrueのときだけ、
呼び出されるようにしたいと思います。
>なちゃさん、渋木宏明(ひどり) ありがとうございます。
-----------------------------------------------------------------
以下、Desiner.csファイルのDisposeメソッドです。
/// <summary>
/// 使用中のリソースをすべてクリーンアップします。
/// </summary>
/// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param>
protected override void Dispose(bool disposing)
{
//●●ここに自作メソッドを追加●●
if (disposing)
{
HogeHoge();
}
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
-----------------------------------------------------------------
>>将来性を考えたとしても、大丈夫です……きっと。
>
> 将来的には
>
>>解放処理漏れの不具合があったため、その処理を追加しようと思ったのですが、
>>何十か所と手を入れなければならない良くない作りでして…。
>>とりあえず、強引に上記のような処置をとっています。
>
> を改善するべきです。
>
はい。そこは上司と相談します。
とりあえず、解決済みチェックをしておきます。
問題点、考慮漏れ等ありましたら、ご指摘をお願い致します。
|