none
Windowsフォームアプリケーションのテンプレート実行後にクリックやマウスカーソル移動を繰り返すと使用メモリが増え続けて解放されない RRS feed

  • 質問

  • 現在Windowsフォームアプリケーションの実装を行おうとしていますが、

    Windowsフォームアプリケーションのテンプレート実行後、表示されたウィンドウ上で

    クリックやマウスカーソル移動を繰り返すと使用メモリが増え続け、その後放置しても解放されません。

    使用メモリに関してはタスクマネージャのプロセスタブで確認しています。

    新しいプロジェクトで作成しただけの状態で、イベント登録などコードや設定には一切手を入れていない状態なのですが、

    何か不足した設定などがあるのでしょうか。

    開発環境は下記のとおりです。

    OS: Windows 7 Professional

    VS: Visual studio professional 2017

    フレームワーク: .NET Framework 4.6.1

    解決策がありましたら教えていただけると幸いです。

    よろしくお願いいたします。

    2019年11月13日 7:50

すべての返信

  • Windows Forms では、イベントが発生するたびにオブジェクトが作成されます。

    例) Control の OnMouseDown を呼び出している箇所
    https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Control.cs,13386

    この例では MouseEventArgs を作成していますが、これらは GC が回収するまでメモリに残ったままです。

    放置しても解放されないのはメモリに空きが充分あるからでは?

    2G とか 3G くらいになるならともかく、気にしなくてよいと思います。

    2019年11月13日 13:01
  • UUU87Eさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    私のテストでは、問題を再現できませんでした。 
    テンプレートwinformsアプリを実行すると、メモリが増加するではなく、安定することがわかりました。

    したがって、2つの提案があります。
    まず、診断ツールを使用してメモリを監視できます。
    次に、GCのためにプログラムを閉じるとメモリが解放されます。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年11月15日 6:51
    モデレータ