Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
WebRequestクラスなど「dispose」「close」を最後に書くものについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10150#CommentId20294
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
るきお
 (社会人)
投稿日時
2011/4/2 23:17:53
いろいろな嫌なことが起こります。
Disposeについて一般的に言えるのはメモリを余計に使うことです。
Disposeしておけば、メモリを使わないで済むものを、Disposeしないと比較的長い間メモリを使い続けることになります。
他にDisposeとCloseの両方に多く言えることは、そのクラスが中でつかっている「もの」(リソース)が使い続けられます。
そのクラスが中で何を使っているかによって具体的に起こることは変わります。
たとえば、ファイルに書き込んだあとCloseしないと、ファイルは開きっぱなしになります。画面には表示されないので気にならないかもしれませんが、ファイルを開きっぱなしにすると、ほかのプログラムがそのファイルの読み書きができなくなったり、そのファイルの削除や名前変更ができなくなる場合があります。
ネットワークに接続するクラスであれば、使い終わっても裏ではネットワークにつながったままになるかもしれません。
データベースなどは、ほかの人にデータを変更されないように一時的にデータをロックすることがありますが、Closeしないといつまでたってもロックが解除されず、だれも読み書きできなくなるなどということもあるかもしれません。
まとめると、DisposeもCloseも終了処理をする仕組みですので、これを呼び出さないということは終了処理をしないということになります。
終了処理の具体的な内容はクラスによって異なるので、何が起こるかはさまざまです。