投稿者 るしぇ  () 投稿日時 2008/7/16 04:50:00
>普通は、Using を使います。 
>実行時に解決するなら、TypeOf や TryCast で判定します。 
すいません。まだボクの周りの主流が.NET2003なので^^; 
  If TypeOf obj Is IDisposable Then 
で判定できました。ありがとうございます。 
 
>VB.Netのガベージコレクタの処理も場合によれば結構時間が 
>かかるものなのでしょうか? 
お掃除に掛かる時間のことでしょうか? 
お掃除を始めるまでの時間のことでしょうか? 
 
メモリが足りなくならないとガベージコレクタが動かないっていう 
話があって、SPREAD を貼り付けたフォームを大量に生成して閉じる 
処理でテストしたことがあります。タスクマネージャでメモリ使用量が 
8割を超えるくらいまでずーっと増え続ける現象を確認しました。 
もちろん Dispose してます。 
 
結構溜め込んでいたのでメモリ使用量が減ってから落ち着くまでの 
処理時間は2.5秒くらいでした。 
 
そんなことを某掲示板で書いていたら『ガベージコレクタの動きは 
環境によって変わります』って書き込みがありました。でも、ボクの 
周りで確認できているのは、この増え続けて足りなくなった時点で 
数秒かけて減るというパターンのみですね。 
 
>クラスの破棄を自発的に正しく行わないとガベージコレクタ任せに 
>なってしまう心配 
自発的に正しく破棄してもガベージコレクタ任せですよ? 
Dispose したから即メモリ解放ではありません。 
[ガベージコレクション入門] 
http://www.microsoft.com/japan/msdn/net/mag00/GCI.aspx 
http://www.microsoft.com/japan/msdn/net/mag00/GCI2.aspx