これが私の状況です。起動時に起動し、使用していないときにシステムトレイで最小化されて実行される小さなWindowsフォームを作成しています。ユーザーはシステムトレイの通知アイコンを介してフォームを開き、フォームを送信した後、アプリは最小化してシステムトレイに戻ります。
これはすべて正常に機能します。しかし、少し奇妙なことに気づきました。プログラムを最初に起動すると、タスクマネージャーのメモリ使用量は約14000 Kと表示されます。次に、システムトレイからフォームを開くと、最大16000 Kになります。その後、フォームを最小化してシステムトレイに戻します。使用量は1000K未満に低下します。これは良好です。アプリケーションを起動して、使用量が時間の経過とともに低下するかどうかを確認するのを待っていますが、変化は見られませんでした。
これが気になるのは、アプリケーションがCitrix環境で実行されるため、アプリケーションを使用していないときはインスタンスあたりのメモリ使用量を抑えたいのですが、ユーザーがいなくてもいいのですが。アプリケーションを開き、毎朝ログイン時に最小化します。
誰か提案やヒントがあれば、私はそれを大いに感謝します。以下にコードのメインブロックを含めます。
public Form1()
{
InitializeComponent();
WindowState = FormWindowState.Minimized;
notifyIcon1.DoubleClick += new EventHandler(notifyIcon1_DoubleClick);
Rectangle r = Screen.PrimaryScreen.WorkingArea;
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - this.Width, Screen.PrimaryScreen.WorkingArea.Height - this.Height);
currentWorkstation = Environment.GetEnvironmentVariable("clientname");
if (currentWorkstation == null)
currentWorkstation = Environment.MachineName;
GC.KeepAlive(notifyIcon1);
GC.KeepAlive(currentWorkstation);
}
private void Form1_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
Hide();
}
ご協力ありがとうございました。