私のVB.Netアプリケーションの1つで、アプリケーションの実行中にエラーが発生しています。このエラーは常に起こるわけではありません。だから私はエラーを再現することもできません。エラーを再現する正確なシーケンスもありません。vb.netアプリケーションのOutOfMemoryException
スタック:System.OutOfMemoryException:メモリ不足です。 System.Drawing.Graphics.FromHdcInternal(のIntPtr HDC) System.Windows.Forms.ToolStrip.OnPaint(PaintEventArgsのe)に System.Windows.Forms.Control.PaintWithErrorHandlingで(PaintEventArgsのE、Int16型層、ブールdisposeEventArgs)で システムでSystem.Windows.Forms.Control.WmPaint(メッセージ& M)System.Windows.Forms.Control.WndProcで (メッセージ& M)System.Windows.Forms.ScrollableControl.WndProcで (メッセージ& M) で.Windows.Forms.ToolStrip.WndProc(メッセージ& m)at System.Windows.Forms.StatusStrip.WndProc(メッセージ& m) at System.Windows.Forms.Control.ControlNativeWind System.Windows.Forms.Control.ControlNativeWindow.WndProcでow.OnMessage(メッセージ& M) System.Windows.Forms.NativeWindow.Callbackで(メッセージ& M) (のIntPtr hWndは、MSGのInt32、のIntPtr WPARAM、LPARAMのIntPtr)
エラーの説明:
MyApplication_UnhandledException
このエラーの後、私は
、というメッセージを取得ビットマップを作成するためのメモリが不足しています。 1つまたは複数のアプリケーションを閉じて、利用可能なものを増やします。
アプリケーションのメモリ使用量を確認したところ、それほど高くありませんでした。このエラーは繰り返し表示されません。では、このエラーのトラブルシューティング方法を教えてください。どのように解決することができますか? .Netメモリプロファイラとredgateメモリプロファイラを使用してアプリケーションの実行を確認しました。
以下は、管理されていないメモリ使用量のスクリーンショットです。これらの値が高いかどうかは私には分かりません。
UPDATE:
私はエラーがGDIオブジェクトをagain.checked持って、それが9998.Soエラーが高いGDIによるものであったobjects.Now質問solve.Thenする方法です私はGDIViewを使用し、チェックしました。そのツールで私はペン2954ブラシ5918フォント90ビットマップ13などGDI合計9998 ペンとブラシは何ですか?私のコードでは、私はブラシやペンを使用していません(私は 'ペン'と 'ブラシ'のコードを検索しましたが、何も取得しませんでした)ので、この助けてください
ツールチップには何を割り当てますか? – Tigran
コードを表示できますか?好ましくは、ビットマップで動作する部分ですか? – Ryan
明らかに唯一のことは、ActiveXコントロールを非常に重く使用していることです。ガベージコレクタが頻繁に実行されるのを防ぐことができます。 System.DrawingオブジェクトでDispose()を使用しないときに発生する問題の種類。あまりにも多くのハンドルを使い切ったとき、このような爆弾が爆発する。 –