Hallo zusammen,
habe in meiner WinForms-Anwendung 2 Threads laufen (jeweils mit .IsBackground = True).
Der erste joint eine UDP-Multicastgruppe und bekommt in einer Dauerschleife ca. alle 3ms Daten davon (jeweils ca. 17k).
Der zweite updated in einer Dauerschleife mittels Control.Invoke die GUI mit den Daten aus dem erhaltenen Byte-Array (2 Textfelder, 2 Datagridviews). Das ganze erfolgt mit Hilfe von Threading.thread.sleep(1000) alle 1 Sekunde.
Durch eine Packet-ID im Datenheader kann ich sehen, ob ich Pakete nicht bekommen habe.
Wenn ich nur die Textfelder aktualisiere, ist alles ok, nehme ich aber noch die Datagridviews mit dazu, verliere ich Pakete!
Wieso beeinflussen die Threads sich gegenseitig? Und wie kann ich's besser machen?
Habe schon versucht das empfangene Daten-Array mit Array.Copy zu kopieren um es in Ruhe darstellen zu können, aber das kostet EXTREM viel Zeit...
Ich verliere übrigens auch schon einen Haufen Pakete, wenn ich nur die Form resize...
habe in meiner WinForms-Anwendung 2 Threads laufen (jeweils mit .IsBackground = True).
Der erste joint eine UDP-Multicastgruppe und bekommt in einer Dauerschleife ca. alle 3ms Daten davon (jeweils ca. 17k).
Der zweite updated in einer Dauerschleife mittels Control.Invoke die GUI mit den Daten aus dem erhaltenen Byte-Array (2 Textfelder, 2 Datagridviews). Das ganze erfolgt mit Hilfe von Threading.thread.sleep(1000) alle 1 Sekunde.
Durch eine Packet-ID im Datenheader kann ich sehen, ob ich Pakete nicht bekommen habe.
Wenn ich nur die Textfelder aktualisiere, ist alles ok, nehme ich aber noch die Datagridviews mit dazu, verliere ich Pakete!
Wieso beeinflussen die Threads sich gegenseitig? Und wie kann ich's besser machen?
Habe schon versucht das empfangene Daten-Array mit Array.Copy zu kopieren um es in Ruhe darstellen zu können, aber das kostet EXTREM viel Zeit...
Ich verliere übrigens auch schon einen Haufen Pakete, wenn ich nur die Form resize...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Theckwolf“ ()