在我的一個VB.Net應用程序中,運行應用程序時出現錯誤。這個錯誤並不總是如此。所以我也無法重現錯誤。也沒有確切的序列來重現錯誤。vb.net應用程序出現OutOfMemoryException
Stack: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(消息&米) 在System.Windows.Forms.Control.WndProc(消息&米) 在System.Windows.Forms.ScrollableControl.WndProc(消息&米) 在系統.Windows.Forms.ToolStrip.WndProc(Message & m) at System.Windows.Forms.StatusStrip.WndProc(Message & m) at System.Windows.Forms.Control.ControlNativeWind ow.OnMessage(消息&米) 在System.Windows.Forms.Control.ControlNativeWindow.WndProc(消息&米) 在System.Windows.Forms.NativeWindow.Callback(IntPtr的的HWND,MSG的Int32,IntPtr的WPARAM,IntPtr的LPARAM)
錯誤描述:
MyApplication_UnhandledException
這個錯誤後,我得到一個消息說,
內存不足以創建位圖。關閉一個或多個應用程序以增加可用性。
當我檢查應用程序的內存使用情況並不是那麼高。此錯誤不會重複出現。所以我如何解決這個錯誤。它如何解決? 我使用.Net內存分析器和redgate內存分析器檢查了運行我的應用程序。
下面是非託管內存使用量的屏幕截圖。我不知道這些值是否很高。
UPDATE:
我得到了錯誤again.checked GDI對象,這是9998.So錯誤是由於高GDI objects.Now的問題是如何solve.Then我用GDIView和checked.By那個工具,我得到了筆2954刷5918字體90位圖13等GDI總9998 那麼這些筆和筆是什麼?在我的代碼中,我沒有使用筆刷或筆(我在代碼中搜索「筆」和「筆刷」,但沒有找到任何代碼)。請在此幫助我
你分配給Tooltip的是什麼? – Tigran
你能告訴我你的代碼嗎?最好是一些使用位圖的部分? – Ryan
唯一明顯的是,您使用的ActiveX控件相當重要。這可以防止垃圾收集器經常運行以避免麻煩。您在System.Drawing對象上不使用Dispose()時遇到的麻煩。當你使用了太多的手柄時,它會像這樣炸彈。 –