Графическое исключение в приложении.net (C#)

Ребята, вы встречали что-то подобное? Тип исключения: System.ComponentModel.Win32Exception Сообщение об исключении: операция успешно завершена. Трассировка стека исключений:

------------------------
   at System.Drawing.BufferedGraphicsContext.CreateCompatibleDIB(IntPtr hdc, IntPtr hpal, Int32 ulWidth, Int32 ulHeight, IntPtr& ppvBits)
   at System.Drawing.BufferedGraphicsContext.CreateBuffer(IntPtr src, Int32 offsetX, Int32 offsetY, Int32 width, Int32 height)
   at System.Drawing.BufferedGraphicsContext.AllocBuffer(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
   at System.Drawing.BufferedGraphicsContext.AllocBufferInTempManager(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
   at System.Drawing.BufferedGraphicsContext.Allocate(IntPtr targetDC, Rectangle targetRectangle)
   at System.Windows.Forms.Control.WmPaint(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at DevExpress.XtraEditors.Container.EditorContainer.WndProc(Message& m)
   at DevExpress.XtraGrid.GridControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Везде в приложении, где используется один графический объект, он используется с использованием, поэтому утилизация включена.

Благодарю.

1 ответ

Решение

У нас были некоторые похожие проблемы. Похоже, у вас есть некоторые утечки памяти в вашем приложении. У нас также была похожая проблема, и нам потребовалось много времени, чтобы выяснить, где и что исправить.

В общем, я могу посоветовать вам проверить, вызывается ли метод Dispose компонентов win form, когда вы прячетесь, и больше не используете его. Но чтобы проверить, есть ли у вас утечки памяти и где их исправить, вам нужен хороший профилировщик памяти.

По крайней мере, в нашем случае это решило эти исключения win32.

Изменить: Я только что видел, что утилизация включена в вашем случае, я все же советую вам проверять каждый звонок! Мы также думали, что Dispose вызывается, но иногда это не так!

Другие вопросы по тегам