2016-07-25 8 views
-1

Ich bin neu in C# und WinForms, und ich entwickle eine Anwendung, die es mir erlauben würde, Daten von der seriellen Schnittstelle zu lesen und auf einem Display-Tool anzuzeigen (listview ,. ..).WinForms -> Toolbox zur schnellen Anzeige von Daten

Jetzt habe ich serielle Kommunikation und andere Funktionalitäten arbeiten, aber ich habe ein Problem mit der Anzeige der Daten. Ich muss eingehende Daten wirklich schnell anzeigen können (alle 1 ms). Um Daten (für jetzt) ​​anzuzeigen, verwende ich DataGridView, aber das Problem ist, dass DataGridView nicht schnell genug ist.

Also meine Frage ist: Gibt es eine Möglichkeit, Daten so schnell anzuzeigen? Ich weiß, dass das menschliche Auge Daten in diesem Intervall nicht wirklich sehen kann, aber immer noch ... Es wäre vorzuziehen, Daten in einer dataGridView-ähnlichen Anzeige anzuzeigen, da es sehr einfach ist, Daten zu organisieren.

Mit freundlichen Grüßen, Nejc

+0

Haben Sie versucht, eine doppelt gepufferte DGV-Unterklasse zu verwenden? – TaW

+0

Was meinst du mit DGV Unterklasse? Ich habe die DoubleBuffer-Eigenschaft für mein Formular auf true gesetzt. Ist das die gleiche wie die DGV-Unterklasse? – Scura

+1

Muss ein Benutzer wirklich so viele Daten so schnell sehen? Aktualisieren Sie die Anzeige nur in vernünftigen Stücken. – LarsTech

Antwort

0

Sie werden nicht erfolgreich Daten alle 1 ms anzeigt. Was Sie tun sollten, ist die Pufferung der eingehenden Daten in einem Thread, dann alle N eingehenden Daten, rufen Sie eine Methode auf, um die Daten anzuzeigen (d. H., Sie fügen N Zeilen gleichzeitig hinzu). Beachten Sie, dass Sie Invoke() verwenden müssen, da Sie die GUI von einem anderen Thread (dem Thread, der die Daten empfängt, und nicht dem Thread, der die GUI erstellt hat) aufrufen werden.

Verwandte Themen