Entwickler-Ecke
Basistechnologien - Timer bei 0,10,20,... Sekunden
BlackMatrix - Fr 10.12.10 17:22
Titel: Timer bei 0,10,20,... Sekunden
Hallo.
Ein Timer, der sich bei 0,10,20,... melden soll, kann der sinnvoll auch anders geschrieben werden als:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Methode(null,null); Timer timer = new Timer(10000); timer.Elapsed += new ElapsedEventHandler(TimerElapsed); timer.Start(); Console.ReadKey(); |
MfG
huuuuuh - Fr 10.12.10 19:05
jep. Du könntest mit Thread.Sleep() arbeiten (was das programm dann anhalten würd) oder du könntest die zeit messen (mit DateTime). Wüsste aber nich was das bringen soll... Timer sind doch dazu da, sich nach bestimmten zeiten zu melden
BlackMatrix - Fr 10.12.10 20:36
Ich meinte eher, ob ein Timer so eingestellt werden kann, dass er nicht erst nach 10 Sekunden aktiv wird, sondern schon bei 0 und dann erst bei 10 Sekunden,...
huuuuuh - Fr 10.12.10 20:47
ach so meintest du das... nein, solch eine möglichkeit wäre mir nicht bekannt.
Yogu - Fr 10.12.10 21:38
Was spricht denn dagegen, die Funktion einfach einmal manuell auszuführen?
BlackMatrix - Fr 10.12.10 21:43
Yogu hat folgendes geschrieben : |
| Was spricht denn dagegen, die Funktion einfach einmal manuell auszuführen? |
Joa das funzt schon, hatte nur gedacht, dass man den Timer irgendwie auf 0 stellen kann und dann gleich wieder auf 10 Sekunden, aber der Aufruf mit 2x null ist auch okay.
Danke euch beiden.
Kha - Fr 10.12.10 23:26
Die sauberere Version:
C#-Quelltext
1: 2: 3:
| timer.Elapsed += delegate { DeineEigentlicheMethode(); }; timer.Start(); DeineEigentlicheMethode(); |
PS: Ein Timer in einer Konsolenanwendung? Warum keine Endlosschleife?
BlackMatrix - Sa 11.12.10 01:57
Kha hat folgendes geschrieben : |
Die sauberere Version:
C#-Quelltext 1: 2: 3:
| timer.Elapsed += delegate { DeineEigentlicheMethode(); }; timer.Start(); DeineEigentlicheMethode(); |
PS: Ein Timer in einer Konsolenanwendung? Warum keine Endlosschleife? |
Sehr elegant, vielen Dank dafür.
Ein Timer in einer GUI-Anwendung
Yogu - Sa 11.12.10 10:35
BlackMatrix hat folgendes geschrieben : |
| Ein Timer in einer GUI-Anwendung |
BlackMatrix hat folgendes geschrieben : |
C#-Quelltext 7:
| /* ... */ Console.ReadKey(); | |
:gruebel:
BlackMatrix - Sa 11.12.10 10:45
Ja, ich hatte den Code aus meiner Gui in ein anderes Projekt geschrieben um zu testen und da habe ich schnell eine Readkey Befehl gesetzt.
ujr - Fr 17.12.10 00:51
BlackMatrix hat folgendes geschrieben : |
| hatte nur gedacht, dass man den Timer irgendwie auf 0 stellen kann und dann gleich wieder auf 10 Sekunden, aber der Aufruf mit 2x null ist auch okay. |
Das geht in der Tat mit dem System.Threading.Timer. Dem kann man mit .Change die Verzögerung für den ersten Aufruf und für die Periode mitgeben. Zu beachten ist natürlich, dass der Timer in einem Thread des Threadpools läuft und man deshalb für den Zugriff auf die GUI Invoke/BeginInvoke verwenden muss.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!