- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vb2005 インスタンスの生成について)
vb2005のインスタンス生成について
このQ&Aのポイント
- vb2005でのインスタンス生成に関する質問です。
- Data.vbというモジュールファイルでグローバル変数xを宣言し、Form1.frmの特定のイベントでxを生成しています。
- このプロセスがメモリエラーを引き起こす可能性について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
メモリリークを問題視しているのであれば,これだけでは発生しません。 x(0)がNothingでない場合,代入によって以前のオブジェクトは強参照がなくなり,Garbage Collection (GC)の対象になります。 メモリが不足してきた段階で,GCが走り,参照されなくなったオブジェクトのメモリを回収します。 # FinalizeメソッドなどがあるとF-reachable Queueとかいろいろ面倒な話がでますが割愛。 メモリに関しては,無駄に参照を持ち続けたりしない限り,.NET Frameworkが面倒をみてくれます。 気をつけなければいけないのは, ・Sharedな配列やListなどから参照されたオブジェクトはそのままだと参照が生き続けること この場合は対応する要素をRemoveしたりNothingを代入したりすることで回避可能 ・デリゲートのインスタンスは呼び出す先のオブジェクトへの参照を保持すること これは主にイベントで発生するが,確実にRemoveHandlerすることで回避可能 といったことでしょうか。
お礼
回答ありがとうございます プログラム実行中に落ちることがあったため、標記の問題が原因と考えて いたところでしたが、Yune-Kichiさんの指摘箇所を洗い直してみます 本当にありがとうございました