- PR -

インスタンス開放のタイミングについて

投稿者投稿内容
イオン
ベテラン
会議室デビュー日: 2005/10/18
投稿数: 81
投稿日時: 2005-11-22 09:27
お世話になります。

クラスを使用する場合について教えてください。
クラス側から見た場合に、インスタンスがたったタイミングと
破棄されたタイミングを取得したいと考えています。
initializeやterminateのイメージです。

newでインスタンスがたったタイミングは取得できたのですが
破棄されたタイミングが取得できません。
よろしければ教えていただけないでしょうか?
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2005-11-22 09:51
Yamと申します。
引用:

クラス側から見た場合に、インスタンスがたったタイミングと
破棄されたタイミングを取得したいと考えています。


自分が死んでいるとは本人には判りません。
何故なら、もう死んでいるから。
他人が生死を判定することはできます。

見当外れなら御免なさい。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-11-22 09:56
こんにちは。

「破棄」をどういう意味で使っているかによりますが。
「ファイナライザ」のことかな?

_________________
囚人のジレンマな日々
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 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 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-22 10:24
引用:

一郎さんの書き込み (2005-11-22 09:59) より:

newというからVB.NETかな。


「initialize」や「terminate」から... じゃなくてですか?

VB 移行ユーザーのための記事が @IT さんにありました。

  VB6 プログラマーのための VB.NET 入門

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
イオン
ベテラン
会議室デビュー日: 2005/10/18
投稿数: 81
投稿日時: 2005-11-22 10:28
レスありがとうございまうす。

破棄されるタイミングですので破棄される直前ということになるのでしょうか。
UNLOADもそうだと思うのですがUnloadされる直前に一度だけ起こる、そのタイミングです。

Finalizeに関してはどうもタイムラグあるようなのです。
そのインスタンスの生存期間が終わったからといってFinalizeが起こるわけではなく、
ガベージコレクタの関係でそのタイミングは予測できないようなのです。

うまく拾うことはできないのでしょうか・・・
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-22 10:36
そういう場合は明示的に Dispose されるタイミングで良いですよね?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-11-22 10:37
引用:

うまく拾うことはできないのでしょうか・・・


たぶんむり。
できたとしても使ってはいけない。
オブジェクトが破棄されることに依存したコードを書かないお約束になってます。

目的は何?


_________________
たつごろー
codeseek
こみゅぷらす

スキルアップ/キャリアアップ(JOB@IT)