2010-11-01 4 views
0

Avez-vous rencontré quelque chose de similaire? Type d'exception: System.ComponentModel.Win32Exception Message d'exception: L'opération s'est terminée avec succès. Exception trace de la pile:exception graphique dans l'application .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) 

Partout dans l'application où il y a un objet graphique utilisé, il est utilisé avec l'aide si l'élimination est activé.

Merci.

+2

Qu'essayez-vous de faire? Un code source serait utile. –

+0

fondamentalement c'est une grande application de winforms, et cette erreur apparaît de temps en temps dans la production. Puisque cela ne peut pas être reproduit dans les essais, je me demandais si cela a déjà été rencontré par quelqu'un d'autre et peut-être quelle était la solution ou comment isoler une telle chose, si vous ne savez pas d'où il sort. – Elena

+0

Utilisez-vous des threads d'arrière-plan pour certains graphiques? c'est-à-dire dessiner ou préparer quelque chose? –

Répondre

0

Nous avons rencontré des problèmes similaires. Il semble que vous ayez des fuites de mémoire dans votre application. Nous avons également eu un problème similaire et il nous a fallu longtemps pour savoir où et quoi réparer.

En général, je peux vous conseiller de vérifier si la méthode Dispose des composants de votre formulaire win est invoquée lorsque vous la cachez et que vous ne l'utilisez plus. Mais pour vérifier si vous avez des fuites de mémoire et où les réparer, vous avez besoin d'un bon profileur de mémoire.

Au moins dans notre cas, il a résolu ces exceptions win32.

Editer: Je viens de voir, que disposer est activé dans votre cas, je vous conseille toujours de vérifier tous les appels! Nous avons également pensé que Dispose est appelé, mais parfois ce n'était pas le cas!