Hallo,
ich schreibe eine Anwendung, die eine Reihe von Messgeräten auslesen und die Ergebnisse im Hauptformular grafisch und in TextBoxen anzeigen soll. Messintervall ist 1 Sekunde.
Nun gibt es verschiedene Konzepte das umzusetzen.
1) Timer im Hauptformular ruft Messroutine auf. Nachteil ist ein evtl. träges Verhalten des Hauptformulars. Hier sitzt der Op allerdings vorm Bildschirm und beobachtet die Werte und überträgt diese gelegentlich händisch in eine andere Anwendung. Große Aktivitäten gibt es nicht.
2) BackgroundWorker in Dauerschleife mit Sleep am Ende der Schleife. Nachteil hier ist die problematische Synchronisation wenn der eigentliche Schleifendurchlauf unterschiedlich lange dauert
3) BackgroundWorker und Timer. Timer setzt Startsignal für BGW, dieser startet und am Ende setzt der das Startflag zurück und legt sich Schlafen bis der Timer erneut ruft.
4) wie 1) allerdings ruft der Timer nicht direkt die Messroutine auf sondern startet diese über den BGW, diesmal ohne Schleife sondern im Einzeldurchlauf. Das unterscheidet sich aber nicht wirklich von Variante 1) oder doch?
Mir fehlt hier ein bisschen Hintergrundwissen über den Overhead der einzelnen Varianten, also wie lange es dauert, bis der BGW wirklich läuft, wie viel Speicher das braucht, ob es da signifikante Unterschiede gibt zwischen Variante 1 und 2 bzw. den anderen. Und macht das überhaupt was aus oder isses egal?
Einschätzungen und Erfahrungswerte sind willkommen.
Gruß
MQ
ich schreibe eine Anwendung, die eine Reihe von Messgeräten auslesen und die Ergebnisse im Hauptformular grafisch und in TextBoxen anzeigen soll. Messintervall ist 1 Sekunde.
Nun gibt es verschiedene Konzepte das umzusetzen.
1) Timer im Hauptformular ruft Messroutine auf. Nachteil ist ein evtl. träges Verhalten des Hauptformulars. Hier sitzt der Op allerdings vorm Bildschirm und beobachtet die Werte und überträgt diese gelegentlich händisch in eine andere Anwendung. Große Aktivitäten gibt es nicht.
2) BackgroundWorker in Dauerschleife mit Sleep am Ende der Schleife. Nachteil hier ist die problematische Synchronisation wenn der eigentliche Schleifendurchlauf unterschiedlich lange dauert
3) BackgroundWorker und Timer. Timer setzt Startsignal für BGW, dieser startet und am Ende setzt der das Startflag zurück und legt sich Schlafen bis der Timer erneut ruft.
4) wie 1) allerdings ruft der Timer nicht direkt die Messroutine auf sondern startet diese über den BGW, diesmal ohne Schleife sondern im Einzeldurchlauf. Das unterscheidet sich aber nicht wirklich von Variante 1) oder doch?
Mir fehlt hier ein bisschen Hintergrundwissen über den Overhead der einzelnen Varianten, also wie lange es dauert, bis der BGW wirklich läuft, wie viel Speicher das braucht, ob es da signifikante Unterschiede gibt zwischen Variante 1 und 2 bzw. den anderen. Und macht das überhaupt was aus oder isses egal?
Einschätzungen und Erfahrungswerte sind willkommen.
Gruß
MQ