Entwickler-Ecke
WinForms - Aufruf zweier Timer
C#Newbie - So 23.06.19 18:50
Titel: Aufruf zweier Timer
Hey Leute,
ich möchte in meinen Programm (WindowsForms-Anwendung) zyklisch in zwei fest definierten unterschiedlichen Intervallen Daten aus 2 SPS-Steuerungen auslesen und dieses dann in einer Form visualisieren. Dazu bietet es sich ja an, zwei Timer zu verwenden. Was passiert nun, wenn sich der Aufruf der beiden Timer zeitlich überlagert....kann/sollte ich das verhindern? Was sollte ich eventuell noch bei der Progammierung der Timer beachten? Vielen Dank für eure schnelle Hilfe!
Moderiert von Th69: Topic aus C# - Die Sprache verschoben am So 23.06.2019 um 20:12
Th69 - So 23.06.19 20:19
Welche Intervallgrößen sollen es denn sein (Millisekunden oder eher Sekundenbereich)?
Beim WinForms-Timer würde der Code immer im UI-Thread laufen, d.h. bei zwei Timern also immer nacheinander. Daher wird wohl einer der beiden System-Timer dafür besser sein, aber wenn die Daten aus beiden SPS-Steuerungen dann wieder in einer gemeinsamen Datenbasis zur Visualisierung landen sollen, so mußt du ja sowieso eine Synchronisation einbauen.
C#Newbie - So 23.06.19 20:55
Im Millisekundenbereich. System-Timer okay....also wahrscheinlich die aus dem Namespace "System.Timers" Wie kann ich die beiden Timer synchronisieren....mit der "Timer.SynchronizingObject Property" nicht zufällig? Wie meinst du das mit dem Code der UI Thread bei zwei Timern immer nacheinander läuft? Nochmals Vielen Dank!!
C#Newbie - So 23.06.19 23:03
Eine Echtzeitanzeige...wie wirkt sich das aus?
Th69 - Mo 24.06.19 07:37
Ich meine damit nur, ob gleichzeitig während dem Sammeln der Daten auch schon diese angezeigt werden sollen? Du hast ja nur "... und dieses dann in einer Form visualisieren" geschrieben.
C#Newbie - Mo 24.06.19 22:45
Genauso möchte ich es haben. Jetzt mal eine dumme Frage...wie programmiere ich den Datenausatausch zwischen den beiden Timer, welche im Main-Teil aufgerufen werden und der Form zum Darstellen? Für Code wär ich sehr dankbar. Vielen Dank für schnelle Hilfe!
Th69 - Di 25.06.19 08:24
Grob gesagt, solltest du das Datensammeln streng von der UI trennen, d.h. eigene Klasse dafür (in der Logikschicht) anlegen.
Und die UI sollte dann entweder selber mit einem Timer die aktuellen Daten (von der Logikschicht) holen oder aber (m.E. noch besser) per Ereignis (event) darüber informiert werden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!