2004-01-01から1ヶ月間の記事一覧

週1くらい書けよ(笑

ばたばたしていて日記を書く暇もない。 でも、この程度の時間が作れないのは時間の使い方がマズわけです。 メールのチェックも、この日記が書かれるペースくらいでしかできていなくて、たまりにたまる日々です。予定では、日記の文量埋めとして .NET Framewo…

他の参照を破棄可能なタイミング

オブジェクトが別のオブジェクトを保持している場合、ファイナライザから保持するオブジェクトを操作することはできません。 class A { public void Open(); public void Close(); } class B { private A a; ~B() { if (a != null) { a.Close(); } } } この…

週記(1/5〜1/9) その2

id:ladybug:20040110 の続き。

所有権や破棄可能権のないオブジェクトを Dispose できない

これは、IDisposable はオブジェクトの寿命を管理するための機能・主張であって、使用を管理するための機能ではないことを知っておかなければ危険であることも示します。 someMethod( IDisposable obj) { // : obj.Dispose(); } someMethod() が Dispose() …

GC はアンマネージドリソースの不足に対応できない

アンマネージドリソース F は FCreate で作成され、FDestroy で解放でき、100個の有限なりソースであるとします。 class Foo { public Foo() { CreateF(); } ~Foo() { ReleaseF(); } /// アンマネージドオブジェクト F private int f_handle = F_EMPTY; prot…

IDisposable

かなり独自解釈なのかもしれませんが、 任意のタイミングで実行可能なファイナライザを規定するための interface と、考えています。なぜ、GC による回収を待たずにオブジェクトの参照を利用してまで Dispose() を呼ぶ必要があるかというと、オブジェクトが…

週記(1/5〜1/9) その1

いまさらながら、あけましておめでとうございます。月曜始発で出発して金曜終電で帰宅する。年末からそういう生活ですので、日記というより週記状態になりつつあります。自身の勉強も兼ねて、.NET のベースライブラリから1日記1つくらいを取り上げていきた…