| Autor |
Beitrag |
BlackMatrix
      
Beiträge: 243
Erhaltene Danke: 1
|
Verfasst: Fr 10.12.10 16:22
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
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: Fr 10.12.10 18: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 
      
Beiträge: 243
Erhaltene Danke: 1
|
Verfasst: Fr 10.12.10 19: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
      
Beiträge: 665
Erhaltene Danke: 19
win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
|
Verfasst: Fr 10.12.10 19:47
ach so meintest du das... nein, solch eine möglichkeit wäre mir nicht bekannt.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 10.12.10 20:38
Was spricht denn dagegen, die Funktion einfach einmal manuell auszuführen?
|
|
BlackMatrix 
      
Beiträge: 243
Erhaltene Danke: 1
|
Verfasst: Fr 10.12.10 20: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
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Fr 10.12.10 22: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 
      
Beiträge: 243
Erhaltene Danke: 1
|
Verfasst: Sa 11.12.10 00:57
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 11.12.10 09:35
BlackMatrix hat folgendes geschrieben : | | Ein Timer in einer GUI-Anwendung |
BlackMatrix hat folgendes geschrieben : | C#-Quelltext 7:
| /* ... */ Console.ReadKey(); | |

|
|
BlackMatrix 
      
Beiträge: 243
Erhaltene Danke: 1
|
Verfasst: Sa 11.12.10 09:45
|
|
ujr
      
Beiträge: 102
Erhaltene Danke: 12
|
Verfasst: Do 16.12.10 23: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.
|
|