一尘不染

实施“计时器”的最佳方法是什么?[重复]

c#

实现计时器的最佳方法是什么?代码示例会很棒!对于此问题,“最佳”定义为最可靠(断火次数最少)和精确。如果指定15秒的间隔,则希望每15秒而不是每10-20秒调用一次目标方法。另一方面,我不需要纳秒精度。在此示例中,该方法每14.51-15.49秒触发一次是可以接受的。


阅读 438

收藏
2020-05-19

共1个答案

一尘不染

使用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!");
 }

Elapsed事件将被升高的毫秒每X量,由指定的Interval计时器对象上属性。它将调用Event Handler您指定的方法。在上面的示例中,它是OnTimedEvent

2020-05-19