Hallo!
Ich schreibe mir immer ganz gerne generische Methoden, die mir den Aufruf im GUI-Thread vereinfachen. Zum Beispiel so:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| public void Invoke<T>(Action<T> action, T param) { if (this.InvokeRequired) Invoke(action, param); else action(param); }
private void DisplayPacket(COMM_Header header, byte[] payload) { Invoke((aHeader) => info_textBox.AppendText("Paket empfangen: " + header.Type.GetInfo().DisplayName + "\n"), header); } |
Generell finde ich, dass anonyme Methoden und Lambda-Ausdrücke bei Multithreading helfen, Code dort stehen zu haben, wo er von der Logik her stehen sollte
Könntest Du nicht die gesamte ByteReceived-Methode bereits im GUI-Thread aufrufen oder dauert die zu lange und sollte parallel abgearbeitet werden?
Oder kann die ByteReceived-Methode nicht einfach den entsprechenden COMM_Header als Ergebnis zurück gegeben?
Viele Grüße,
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".