内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
实现计时器的最佳方式是什么?代码示例会很棒!对于这个问题,“最好”被定义为最可靠和精确。如果我指定了15秒的时间间隔,我希望每15秒钟调用一次目标方法,而不是每10到20秒钟一次。另一方面,我不需要纳秒精度。在这个例子中,该方法每隔14.51-15.49秒就可以接受。
使用Timer
。
public static void Main() { System.Timers.Timer aTimer = new System.Timers.Timer(); aTimer.Elapsed+=new ElapsedEventHandler(OnTimedEvent); aTimer.Interval=5000; aTimer.Enabled=true; Console.WriteLine("Press \'q\' to quit the sample."); while(Console.Read()!='q'); } // Specify what you want to happen when the Elapsed event is raised. private static void OnTimedEvent(object source, ElapsedEventArgs e) { Console.WriteLine("Hello World!"); }
用System.Windows.Forms.Timer
类:你可以实现你所需要的。
System.Windows.Forms.Timer t = new System.Windows.Forms.Timer(); t.Interval = 15000; // specify interval time as you want t.Tick += new EventHandler(timer_Tick); t.Start(); void timer_Tick(object sender, EventArgs e) { //Call method }
通过使用Stop()方法,可以停止计时器。
t.Stop();