- 題名: PictureBoxとListView再描画でフリーズ
- URL: http://dobon.net/cgi-bin/up/files/044.zip
- 日時: 2008/10/21 16:19:01
- ID: 23220
- この記事の返信元:
- (なし)
- この記事への返信:
- [23222] Re[1]: PictureBoxとListView再描画でフリーズ2008/10/21 18:26:12
- [23226] Re[1]: PictureBoxとListView再描画でフリーズ2008/10/22 3:18:55
- ツリーを表示
分類:[.NET]
10秒周期でアイコンを表示したPictureBox(frmMain)とアイコンとチェックボックス付ListView(frmList)を更新(再描画)する
アプリを作成しています。
起動直後は所望の動きなのですが、徐々に重たくなり数時間でフリーズします。
タスクマネージャーで監視すると
・メモリ使用量+仮想メモリサイズが徐々に増えている
(1時間で25,25MB→50,50MB前後)
・CPU使用率も徐々に大きくなる
あと
・更新周期を30秒にすると重くなるのも遅くなる
・重くなると以下のエラーを吐く、場合によっては落ちる
'System.ArgumentException' の初回例外が System.Drawing.dll で発生しました。
'System.InvalidOperationException' の初回例外が System.Windows.Forms.dll で発生しました。
'System.Runtime.InteropServices.ExternalException' の初回例外が System.Drawing.dll で発生しました。
・アイコンファイル読込で落ちる場合あるが理由が不明
・1更新につき関数が呼ばれるのも1回であることは確認済
更新前にDisposeして必要分をNEWしているつもりなのですが
できていないのでしょうか?
それとも他に原因があるのでしょうか?
VB6の名残で標準モジュールで処理しているのがNG?
以下、該当部関数ソースを添付します。
(投稿用に一部名前変更/省略しています)