- PR -

常駐型アプリのメモリについて

1
投稿者投稿内容
SurfBaby
会議室デビュー日: 2007/11/16
投稿数: 7
投稿日時: 2008-11-19 14:56
いつも参考にさせていただいております。

さて、質問なのですが
VB2005にて作成した、タスクトレイに常駐するタイプのアプリを作成しました。
内容は、指定したフォルダにテキストファイルがあるかどうかを確認し、
あればそのテキストファイルの内容をフォームに表示するというものです。

このプログラムが常駐している間、タスクマネージャーで確認すると
メモリが増え続けてしまいます。


以下概要です。

==================================
Form1・・・メインとなるフォームで設定画面として使用。
     このフォームがタスクトレイに格納されます。

     TimerコントロールのIntervalで、5秒おきにForm1で指定したフォルダを確認。
     ファイルが存在するとき、表示用のForm2をForm2.Show()で呼び出し。

Form2・・・フォームロード時? Public Sub New() で
     ReadAllTextメソッドを使用してテキストファイルを読み込み、フォームに表示。
     Form2に「OK」ボタンがあり、押すことでForm2を閉じています。
     閉じ方は Me.Close() で閉じています。
==================================

大まかな動きとしては以上です。
この時、大きなファイルを読み込んだForm2を閉じればメモリは自動で開放されて
使用メモリは減るものだと思っていたのですが、大きなテキストファイルを開いた時のままで
使用メモリが減りません。
何か行儀の悪いことをしていたりするのでしょうか?
なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-11-19 15:41
Form の Close メソッドや Dispose メソッドを呼び出して解放されるのはアンマネージリソースです。
メモリがすぐ解放されるわけではありません。

参考 URL:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=24911
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-26167.htm


_________________
Nakamura Blog
SurfBaby
会議室デビュー日: 2007/11/16
投稿数: 7
投稿日時: 2008-11-20 20:24
遅くなってすみません。
返信ありがとうございます。

過去ログでも同様の問題があがっていたんですね。
うまく探せていませんでした。

別件の仕事が入ってしまい、今すぐ検証等はできませんが
教えていただいたURLを参考にさせていただき、もう少し考えてみようと思います。

ありがとうございました!
1

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