Merwürdige Exception tritt nur beim debuggen auf

27/03/2008 - 11:35 von D.Follmann | Report spam
Hallo,

ich habe ein Problem mit einer Exception, die IMMER auftritt, wenn ich eine
Komponente debugge. Bei normaler Auführung làuft das Programm einwandfrei,
aber ich kann es aufgrund dieser Exception nicht mehr debuggen, was sehr
problematisch ist, da ich auch andere Teile des Projektes noch àndern und
debuggen muss. folgende Exception tritt beim debuggen auf, vielleicht kann
mir ja jemand einen Tipp geben, was ich dagegen tun kann:

Exception:
=
Type: System.Reflection.TargetInvocationException

Message: Ein Aufrufziel hat einen Ausnahmefehler verursacht.


Stacktrace:

bei System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[]
arguments, SignatureStruct& sig, MethodAttributes methodAttributes,

RuntimeTypeHandle typeOwner)
bei System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[]
arguments, Signature sig, MethodAttributes methodAttributes,

RuntimeTypeHandle typeOwner)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo

culture, Boolean skipVisibilityChecks)
bei System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo

culture)
bei System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
bei _3S.CoDeSys.Utilities.WeakMulticastDelegate.Invoke(Object[] args)
bei
_3S.CoDeSys.MessageStorage.MessageStorage.FireCategoryAdded(IMessageCategory
category)
bei _3S.CoDeSys.MessageStorage.MessageStorage.AddMessage(IMessageCategory
category, IMessage message)
bei KEB.Combivis.Base.OnlineMonitor.OnlineStatusMonitor.updateView(Object
o) in

C:\CVS_Work\dotnet\Combivis_Net\KEBBasePlugin\OnlineMonitor\OnlineStatusMonitor.cs:Zeile 172.



Inner Exception:


Type: System.InvalidOperationException

Message:

Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement
erfolgte von einem anderen Thread als dem Thread, für den es

erstellt wurde.


Stacktrace:

bei System.Windows.Forms.Control.get_Handle()
bei System.Windows.Forms.Control.SendMessage(Int32 msg, Int32 wparam,
String lparam)
bei System.Windows.Forms.ComboBox.NativeAdd(Object item)
bei System.Windows.Forms.ComboBox.ObjectCollection.AddInternal(Object item)
bei System.Windows.Forms.ComboBox.ObjectCollection.Add(Object item)
bei _3S.CoDeSys.MessageView.MessageView.OnCategoryAdded(IMessageCategory
category)

Vielen Dank im vorraus!

MfG

Dominik
 

Lesen sie die antworten

#1 Alexander Gnauck
27/03/2008 - 12:41 | Warnen spam
Hallo,

Du machst GUI updates aus einem anderen Thread was fast immer eine
System.Reflection.TargetInvocationException wirft.

Du musst deine GUI Thread Safe machen. Schau dir mal die BeginInvoke
Methoden der SWF Controls an.

Hier ein kleines Beispiel aus einem meiner Codes:

private void OnMessage(object sender, Message msg)
{
if (InvokeRequired)
{
BeginInvoke(new OnMessageDelegate(OnMessage), new
object[] { sender, msg });
return;
}
}

Der OnMessage Handler nicht aus dem UI Thread aufgerufen was ohne Invoke
die gleiche Exception werfen würde.

Gruß
Alex

Ähnliche fragen