- - PR -
インスタンス開放のタイミングについて
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-22 09:27
お世話になります。
クラスを使用する場合について教えてください。 クラス側から見た場合に、インスタンスがたったタイミングと 破棄されたタイミングを取得したいと考えています。 initializeやterminateのイメージです。 newでインスタンスがたったタイミングは取得できたのですが 破棄されたタイミングが取得できません。 よろしければ教えていただけないでしょうか? | ||||
|
投稿日時: 2005-11-22 09:51
Yamと申します。
自分が死んでいるとは本人には判りません。 何故なら、もう死んでいるから。 他人が生死を判定することはできます。 見当外れなら御免なさい。 | ||||
|
投稿日時: 2005-11-22 09:56
こんにちは。
「破棄」をどういう意味で使っているかによりますが。 「ファイナライザ」のことかな? _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2005-11-22 09:59
newというからVB.NETかな。
VB.NETではFinalize()メソッドをオーバーライドします。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconfinalizemethodscdestructors.asp --------------------- Yamさんのおっしゃっるように、破棄されてしまったらもう分かりませんよね。 破棄されつつある時にFinalize()メソッドは呼ばれます。 [ メッセージ編集済み 編集者: 一郎 編集日時 2005-11-22 10:01 ] | ||||
|
投稿日時: 2005-11-22 10:24
「initialize」や「terminate」から... じゃなくてですか? VB 移行ユーザーのための記事が @IT さんにありました。 VB6 プログラマーのための VB.NET 入門 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-11-22 10:28
レスありがとうございまうす。
破棄されるタイミングですので破棄される直前ということになるのでしょうか。 UNLOADもそうだと思うのですがUnloadされる直前に一度だけ起こる、そのタイミングです。 Finalizeに関してはどうもタイムラグあるようなのです。 そのインスタンスの生存期間が終わったからといってFinalizeが起こるわけではなく、 ガベージコレクタの関係でそのタイミングは予測できないようなのです。 うまく拾うことはできないのでしょうか・・・ | ||||
|
投稿日時: 2005-11-22 10:36
そういう場合は明示的に Dispose されるタイミングで良いですよね?
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-11-22 10:37
たぶんむり。 できたとしても使ってはいけない。 オブジェクトが破棄されることに依存したコードを書かないお約束になってます。 目的は何? _________________ たつごろー codeseek こみゅぷらす |
1|2|3
次のページへ»