在我的一个 VB.Net 应用程序中,我在运行应用程序时遇到错误。这个错误并不总是出现。所以我也无法重现该错误。也没有确切的顺序来重现错误。
堆栈:System.OutOfMemoryException:内存不足。在 System.Drawing.Graphics.FromHdcInternal(IntPtr hdc) 在 System.Windows.Forms.ToolStrip.OnPaint(PaintEventArgs e) 在 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer, Boolean disposeEventArgs) 在 System.Windows .Forms.Control.WmPaint(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ScrollableControl.WndProc(Message& m) 在 System.Windows.Forms.ToolStrip.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.StatusStrip.WndProc(Message& m) 在 System .Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
错误描述:
MyApplication_UnhandledException
在此错误之后,我收到一条消息说,
内存不足,无法创建位图。关闭一个或多个应用程序以增加可用。
当我检查应用程序的内存使用情况时,它并没有那么高。此错误不会重复出现。那么我该如何解决这个错误。如何解决?我使用 .Net 内存分析器和 redgate 内存分析器检查了我的应用程序的运行情况。
下面是非托管内存使用量的屏幕截图。我不知道这些值是否很高。
更新:
我再次收到错误。检查gdi对象,它是9998。所以错误是由于高gdi对象造成的。现在问题是如何解决。然后我使用GDIView并检查。通过那个工具我得到了pen-2954 Brush-5918 font-90 bitmap-13 etc GDI total-9998 那么这些笔和画笔是什么?在我的代码中,我没有使用画笔或钢笔。(我在代码中搜索了“钢笔”和“画笔”但没有得到任何东西。)所以请帮助我