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

Subject:
[csharpll:0325] Re: < 教 > リソース解放のタイミング
From:
Takao Ono <takao@...>
Date:
Mon, 20 Mar 2006 17:00:22 +0900
X-Mailer:
mnews [version 1.22PL7] 2003-09/29(Mon)
Message-Id:
<060320170022.M0110700‐at‐flame.hirata.nuee.nagoya-u.ac.jp>
In-Reply-To:
324
小野@名古屋大学 です.

O'Reilly の「プログラミングC#」云わく....

<023001c64bf3$05f9a220$020ba8c0@magick>の記事において
shuji_ono@...さんは書きました。
私> う〜, わけわからん. なんでデストラクタと Dispose の両方があるんだ.
shuji_ono> デストラクタ(というかファイナライザというか)は必ずしも呼び出されることが
shuji_ono> 保障されてなかったよーな>C#
遅くとも GC のタイミングで必ず呼出されることが保証されてます.

shuji_ono> そういえばDisposeは呼び出しが保障されてるんだろか。
shuji_ono> 本読み返さないと。。。
こっちは using を使えば本体の実行が終了した時点で呼出されますが,
using を使わないとアウトじゃないかなぁ.

で, 「Dispose() を用意するということは, そのクラスを使用するコー
ドやプログラマに対して『デストラクタの実行を待たずに, Dispose()
を呼んですぐに後始末をしてください』と宣言する」(p. 86) とあって,
しかも例では Dispose() を呼出したときにはデストラクタで二重に後始
末しないようにまでしてます.

えっと....
「デストラクタが呼出されたかどうか」を GC が判断すればいいような....
# デストラクトする時点と GC で回収される時点を区別する必要って,
# どのくらいあるんだろ.
--
名古屋大学大学院 情報科学研究科 計算機数理科学専攻
小野 孝男 (takao@...)

スレッド

Navigation

検索

[検索ヘルプ]

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