Danke Leute, das was Frank gepostet hat, war das was ich gesucht habe.
Aber es ist schön zu sehen das es ja doch mehrere Möglichkeiten gibt
solch ein Problem anzugehen.
Das Problem war jenes, das ich in dem eigentlich Thread zu auslesen,
nicht die Berechnung durchführen lassen wollte. Die Übergabe an
Formularinhalte aber enorme Invoke Ausmaße angenommen hatte.
Ich hatte mir dann als "Zwischenbehelf" ein TimerObject angelegt welches
regelmäßig prüft ob denn ein neues Paket empfangen wurde und dies dann
abarbeitete. Das ist natürlich aus Sicht der Performance, den
Möglichkeiten und des Code-Designs absoluter Dünschiss, aber es hatte
funktioniert :D So in etwa:
1 | //....
|
2 | volatail bool isSet = false;
|
3 | //....
|
4 | Listener = new Thread(UDP_Listener);
|
5 | Listener.start();
|
6 | //....
|
7 |
|
8 | public void UDP_Listener()
|
9 | {
|
10 | //....
|
11 | bool done = false;
|
12 | while (!done)
|
13 | {
|
14 | //...
|
15 | isSet = true;
|
16 | }
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 | private void tim_UDP_Tick(object sender, EventArgs e)
|
22 | {
|
23 | if(isSet)
|
24 | {
|
25 | //Hier die Berechnung und die Ausgabe ausführen
|
26 | }
|
27 | }
|
28 |
|
29 | //....
|
Den Timer habe ich alle 10ms aufrufen lassen, egal ob ich Daten bekommen
hatte oder nicht.
Keine Angst, hab ich nun natürlich ersetzt. :)