VB.NETのデストラクタで嵌る |
|
| VB.NETのクラスオブジェクトが破棄されるタイミングについてよくわからなくて気持ち悪い思いをしています。_| ̄|○il|||liうげぇげえっげえぇえええぇえ とりあえず今までは、自分が作ったクラスオブジェクトについては、破棄するときにはオブジェクト型にNothingを代入するようにしていたのですが、明示的に破棄する関数を用意していませんでした。何故そうしていたのかというと、明示的にデストラクタを呼び出すような方法は無いと勝手に間違って解釈していたからです。 これによって結果的に嵌ってしまった部分があり、とりあえず目星をつけてFinalize関数を派生してみたのですが、何だか知らないけどオブジェクトが破棄されるはずのタイミングできちんと呼ばれませんでした。どうもガベージコレクションと関係があるらしいのですが。VB.NETでは確保されたインスタンスが開放されるタイミングが決まっておらず、ガベージコレクションされる際に開放されるようです。オブジェクト型にNothingを代入してもその場でガベージコレクションされるとは限らないので、Finalize関数を派生してもダメなケースがあるということのようです。 で、どうやらIDisposableという奴をImplementsして、Dispose関数というのを派生すればいいみたいです。ややこしい……
チャート表示部分でも作ろうと思ったけどその前にまずログをファイルに入出力するところを作らないとダメだということに今更気が付いた。ログの出力は多分かなり簡単なのですが、ログの入力もやろうとすると結構実装が不足していることに気付いた。特にRSSを接続していない状態での個別銘柄の株価の表示方法とか。正直あまり面白い部分じゃないので停滞中。 |\__/|.. |\__/| |\__/| l|\__ /|l / .▼▼▼ \ / \ / 川 \ ,ril|||l'" "'l||lli;, | (●) (●) | | (●) (●) | .| (●) (●) | | (●) (●) | | 三 (_又_) 三.|. . | 三 (_又_) 三.| | 三 (_又_) 三.| | 三 (_又_) 三.| \ _ ^ _/ \ _ ^ _/ \ _ ^ _/ \ _ ^ _/ /ー(Ω)-\ /ー(Ω)-\ /ー(Ω)-\ /ー(Ω)-\
| |
|
6月18日(日) | トラックバック(0) | コメント(0) | 日記 | 管理
|