2010-11-01 2 views
0

Вы встречались с кем-то подобным? Тип исключения: System.ComponentModel.Win32Exception Сообщение об исключении: операция успешно завершена. Исключение трассировки стека:Исключение графики в приложении .net (C#)

------------------------ 
    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) 

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

Спасибо.

+2

Что вы пытаетесь сделать? Некоторый исходный код был бы полезен. –

+0

В основном это большое приложение winforms, и эта ошибка появляется время от времени в процессе производства. так как это невозможно воспроизвести при тестировании, мне было интересно, если это когда-либо встречалось кем-то другим, и, может быть, какое решение было или как вы могли бы изолировать такую ​​вещь, если вы не знаете, откуда она появляется. – Elena

+0

Используете ли вы фоновые потоки для некоторых графических объектов? то есть нарисовать или подготовить что-нибудь? –

ответ

0

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

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

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

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