[csharpll:0315] Re: <教> リソース開放のタイミング

Subject:
[csharpll:0315] Re: <教> リソース開放のタイミング
From:
Imabeppu <imabeppu@...>
Date:
Mon, 20 Mar 2006 15:38:47 +0900
X-Mailer:
Becky! ver. 2.24.02 [ja]
Message-Id:
<20060320153150.8478.IMABEPPU‐at‐jp.fujitsu.com>
In-Reply-To:
314
References:
314
Imabeppu です。

Quoted from
Subject: [csharpll:0314] <教> リソース開放のタイミング
From: "FUKUDA, Fumiki" <fukuda.fm@...>
Date: 2006/03/20 15:21:09 (Mon, 20 Mar 2006 15:21:09 +0900)

> 裏を返せばガベコレなんて何時動くかわかったもんじゃないから、
> 確実にClose()したいなら明示的にClose()を呼べ。ってことでしょか。
:
> あるいはデストラクタ内でCloseしてるんなら、using(...)で囲んで
> おけばスコープ外れるときにDisposeされ、そこでデストラクタが呼ばれて
> めでたくCloseなのかな?

 finally で明示的に Close() を呼ぶか、using を使う必要があった
 と思います。

> いや、Javaのときも感じたんだけど、
> 「ガベコレあるから散らかしっぱなしにできて楽ちん」
> ってのは"うそっぱち"ですよね? 少なくともメモリ以外のリソース
> を使ったんならプログラマが責任もってお片づけしたらんと。

 GC があるけど、デストラクタは C++ と同じようなタイミングで呼び
 出される言語があるとうれしいです。参照オブジェクトは、参照カウ
 ンタが 0 になるときですね。

 C++ のデストラクタって、なにかと便利ですよね。JAVA や C# でこ
 れが使えないことで、なんだか退化したように思えるときがあります。

 GC の仕組みはよく知らないのですが、参照カウンタが 0 になったと
 きに「削除していいよ」というフラグを立てておいて、それらを GC
 で片付けるということではないのでしょうか? そうならば、削除フラ
 グを立てるときにデストラクタを呼び出してくれればいいのに、と思
 ってしまいます。そう簡単にもいかないんでしょうね。(^^;)



 # 「リソース開放のタイミング」→「リソース解放のタイミング」


--
|=====  ∧ ∧  =====  Imabeppu  =========================|
|==  n(=⌒o⌒=)n  ==  http://homepage3.nifty.com/bep/  ==|

スレッド

Navigation

検索

[検索ヘルプ]

Maintener: Tietew <www.tietew.jp>
Powered by Ruby on Rails, Mongrel, PostgreSQL, and Hyper Estraier.
click here