Entwickler-Ecke

Basistechnologien - "InvalidOperationException"


Max064 - Fr 30.07.10 08:54
Titel: "InvalidOperationException"
Hi,

ich versuche folgende Funktion aufzurufen:


C#-Quelltext
1:
2:
screen = new Bitmap(windowSize.Width, windowSize.Height);
_graphiceditor.panel1.DrawToBitmap(screen, new Rectangle(new Point (0,0),windowSize));

Dabei entpsricht _graphiceditor einer geöffneten Form. Sobald ich jedoch versuche die Fkt. _graphiceditor.panel1... aufzurufen bekomme ich folgende Fehlermeldung:

Zitat:

In System.InvalidOperationException ist eine Ausnahme vom Typ "System.Windows.Forms.dll" aufgetreten, doch wurde diese im Benutzercode nicht verarbeitet.

Zusätzliche Informationen: Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement GraphicEditorForm erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.


Was bedeutet dies und wie kann ich den Fehler verhindern?

lg Max


bakachan - Fr 30.07.10 09:09

Wie schon da steht versuchst du aus dem einen Thread ein Control des anderen Threads zu verändern.
Um das zum Laufen zu bringen heisst das Zauberwort: "Invoke"
Dazu dürftest du hier im Forum oder per Google einige Beispiele/Tutorials finden.


Th69 - Fr 30.07.10 11:56

Hier ein guter Artikel zum Thema "Invoke": http://www.mycsharp.de/wbb2/thread.php?threadid=33113