Hallo,
darkdust hat folgendes geschrieben : |
| Ich hatte gelesen das ein einfaches "Invoke" mein Problem lösen könnte |
Das ist korrekt.
darkdust hat folgendes geschrieben : |
C#-Quelltext 1: 2: 3: 4: 5: 6: 7:
| public void OnMessage(EventArgsTerminProtocolMessage e) { if (InvokeRequired) Invoke(new EventHandler(OnMessage(e))); else richTextBox1.Text += "Priority: " + e.EnPriority.ToString() + " " + e.DTTime + ": " + e.SMessage; } | |
Das ist nicht korrekt.
OnMessage(e) ruft die Methode auf und gibt den Rückgabewert zurück (
void).
new EventHandler(...) erwartet aber die Methode selbst, nicht einen Aufruf dieser. Was du machen musst, ist folgendes:
C#-Quelltext
4:
| /* ... */ Invoke(new TerminTemplate.HandlerTerminMessage(OnMessage), e); |
Erstens kannst du hier nicht
EventHandler verwenden, da die Methode
OnMessage andere Parameter hat als
EventHandler. Zweitens müssen die Parameter, die an die Methode übergeben werden sollen, als Parameter von
Invoke, nicht von
OnMessage, angegeben werden.
Grüße,
Yogu