Autor Beitrag
BlackMatrix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: 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:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
      Methode(null,null);//für 0 Sekunden
      
      Timer timer = new Timer(10000);
      timer.Elapsed += new ElapsedEventHandler(TimerElapsed);
      timer.Start();//für alle 10 Sekunden
      
      Console.ReadKey();


MfG
huuuuuh
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 665
Erhaltene Danke: 19

win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 665
Erhaltene Danke: 19

win xp, (win vista), win 7
VS 2008 Express Edition, VS 2010 Express Edition, VS 2010 Professionell
BeitragVerfasst: Fr 10.12.10 19:47 
ach so meintest du das... nein, solch eine möglichkeit wäre mir nicht bekannt.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 10.12.10 20:38 
Was spricht denn dagegen, die Funktion einfach einmal manuell auszuführen?
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: Fr 10.12.10 20:43 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 10.12.10 22:26 
Die sauberere Version:

ausblenden C#-Quelltext
1:
2:
3:
timer.Elapsed += delegate { DeineEigentlicheMethode(); };
timer.Start();
DeineEigentlicheMethode();


PS: Ein Timer in einer Konsolenanwendung? Warum keine Endlosschleife?

_________________
>λ=
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: Sa 11.12.10 00:57 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Die sauberere Version:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 11.12.10 09:35 
user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
Ein Timer in einer GUI-Anwendung

user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
 
7:
/* ... */
      Console.ReadKey();

:gruebel:
BlackMatrix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 243
Erhaltene Danke: 1



BeitragVerfasst: Sa 11.12.10 09:45 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
Ein Timer in einer GUI-Anwendung

user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
 
7:
/* ... */
      Console.ReadKey();

:gruebel:


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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 102
Erhaltene Danke: 12



BeitragVerfasst: Do 16.12.10 23:51 
user profile iconBlackMatrix hat folgendes geschrieben Zum zitierten Posting springen:
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.