Errore Memoria insufficiente

martedì 18 settembre 2007 - 11.06

livio Profilo | Newbie




Sto eseguendo la Stampa di un bar Code ed ogni tanto dopo molte prove di stampa mi da il segunete errore:

MEMORIA INSUFFICIENTE

in System.Drawing.Graphics.FromHdcInternal(IntPtr hdc)
in System.Drawing.BufferedGraphicsContext.CreateBuffer(IntPtr src, Int32 offsetX, Int32 offsetY, Int32 width, Int32 height)
in System.Drawing.BufferedGraphicsContext.AllocBuffer(Graphics targetGraphics, IntPtr targetDC, Rectangle targetRectangle)
in System.Drawing.BufferedGraphicsContext.Allocate(IntPtr targetDC, Rectangle targetRectangle)
in System.Windows.Forms.Control.WmPaint(Message& m)
in System.Windows.Forms.Control.WndProc(Message& m)
in System.Windows.Forms.Label.WndProc(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
in System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
in System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
in System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
in System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
in System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
in System.Windows.Forms.Application.Run(Form mainForm)
in SI.MediaList.Forms.frmStart.Main()





qualcuno ha qualche idea su questo tipo di errore???




questa è la classe che uso per stampare

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra




ciao e grazie

Brainkiller Profilo | Guru

>Sto eseguendo la Stampa di un bar Code ed ogni tanto dopo molte
>prove di stampa mi da il segunete errore:
>MEMORIA INSUFFICIENTE

Ciao Livio,
vedo che usi codice unmanaged. Come sai non rietra nel memory management di .NET. Quindi se ti dimentichi di de-allocare qualcosa, crei dei memory leaks e a lungo andare la memoria si satura e ti dà quell'errore. Ti consiglio quindi di verificare tutte le chiamate di allocazione e deallocazione. Evenutalmente usa anche il Task Manager con le colonne relative alla memoria e agli Handles, fai girare il codice incriminato n volte e vedi come si muovono gli indicatori. In questo modo capisci se è qualche tuo errore/dimenticanza nel codice.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5