Exception Ursache finden, wie?

25/07/2009 - 10:20 von Marc | Report spam
Hallo,

meine Anwendung wirft von Zeit zu Zeit eine Unhandled Exception
der ich leider nicht Herr werde.
Wie ich sehe, hat anscheinend eine PictureBox ein Problem mit einem
Image welches ihr zugewiesen ist.
Leider beinhaltet der Stacktrace nur das, was ich hier hinein kopiert
habe. Ich weiss leider nicht wo und weshalb der Fehler auftritt.
Hat jemand einen Tip für mich den Fehler etwas einzukreisen?
In meiner Anwendung habe ich leider viele PictureBoxen und sehr viele
Images!

Exception: Object is currently in use elsewhere.
794880 7/21/2009 6:22:47 PM:984: Trace:
at System.Drawing.Image.get_Height()
at System.Drawing.Image.get_Size()
at
System.Windows.Forms.PictureBox.ImageRectangleFromSizeMode(PictureBoxSizeMode
mode)
at System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)
at
System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e,
Int16 layer, Boolean disposeEventArgs)
at System.Windows.Forms.Control.WmPaint(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at
System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)


Grüße
Marc
Ich verwende die kostenlose Version von SPAMfighter für private Anwender,
die bei mir bis jetzt 10944 Spammails entfernt hat.
Rund 6 Millionen Leute nutzen SPAMfighter schon.
Laden Sie SPAMfighter kostenlos herunter: http://www.spamfighter.com/lde
 

Lesen sie die antworten

#1 Frank Dzaebel
25/07/2009 - 11:36 | Warnen spam
Hallo Marc,

Exception: Object is currently in use elsewhere.



Es gibt mehrere Möglichkeiten, wie das zustande
kommen kann. Beachte, dass die PictureBox unmanged
Ressourcen benutzt, die möglichst früh explizit freigegeben
werden sollten:

[PictureBox.Dispose-Methode (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...spose.aspx

Schau Dir auch das folgende Beispiel an, das das
Image explizit vorher freigibt:

[PictureBox-Klasse (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/lib...rebox.aspx

Falls Du ein "Graphics g = Graphics.FromImage(bmp);" erstellst,
solltest Du "g" so früh wie möglich disposen:

[Gewusst wie: Erstellen eines benutzerdefinierten Steuerelements für eine
Bildschaltflàche]
http://msdn.microsoft.com/de-de/lib...72532.aspx

Standard-Locking-Probleme:

[HowTo: Load a picture so it doesn't lock the picture file]
http://www.vb-helper.com/howto_net_...ocked.html

Zeichnest Du auch aus anderen Threads (ggf. implizit
über "picBox.Invalidate()" oder:
"gr.DrawImage(PicBox.Image, -xMove, 0)"
in einem BackgroundWorker, o.Î
Sind andere 3rd Party DLLs diesbzgl. mit enthalten,
die ggf. die Bilder benutzen könnten?

[The object is currently in use elsewhere.]
http://social.msdn.microsoft.com/Fo...b1f2711c02

["Object is currently in use elsewhere" error. - Peter Ritchie's MVP Blog]
http://msmvps.com/blogs/peterritchi...error.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen