Hallo Andy,
Zitat:welche(s) kontinuierlich mit jedem Durchlauf anwächst
Das ist der Kardinalfehler: alles, was ungehindert "anwächst", sprengt dir früher oder später dein Programm - entweder per "Out of Memory" oder durch die Schleifenzeiten...
Zitat:Durch den relativ hohen Takt von 50ms wächst diese Liste natürlich sehr schnell an.
So schnell kann niemand mitlesen! Außerdem ist man dauernd am Scrollen, wenn man eine bestimmte Message sehen will...
Zitat:Was ist denn die eleganteste Möglichkeit größere Datenmengen oder Arrays an Tabellen oder Listenfelder zu übergeben? Oder wie visualisiert man sowas am besten?
Es gelten die sonst auch üblichen Ratschläge:
- Trenne Datenerfassung und Datenaufbereitung/-darstellung voneinander.
- Verwende parallele Schleifen.
- Verwende Queues.
- Limitiere die UI-Updaterate auf ein vernünftiges Maß.
- Limitiere die Menge der Daten im Speicher...
Tabellen/Listen sind schon "schön anzusehen", aber ist es wirklich sinnvoll, alle 50ms erneut mehr als 2000 Einträge hineinzuschreiben?
Tipps: Es gibt einiges, was du optimieren könntest...
Das hier
funktioniert auch ohne String-Vergleiche und nachfolgendes Select!
Nachtrag:
- Wieviele verschiedene CAN-Botschaften erwartest du denn? Reicht es nicht aus, immer nur die aktuellsten Werte jeder Botschaft anzuzeigen? (Meine Anwendungen kommen mit ~20 Botschaften aus, die ich auch in einem Array/Tabelle darstellen lasse...)
- Guck dir an, wie das in anderen Programmen (CANalyzer und Konsorten) gelöst wird...