启动后立即执行计时器?

时间:2013-06-24 19:46:31

标签: c# timer

我有一个间隔为3600000的计时器,可以翻译成一个小时,所以当我这样做时

timer.Start()

它将从下一个小时开始每小时执行以下代码

private void timer_Tick(object sender, EventArgs e)
{
    .....
}

但如果我希望它也被执行第二次我调用timer.Start()然后每小时一次呢?

3 个答案:

答案 0 :(得分:10)

最简单的选择是调用方法:

timer.Start();
timer_Tick(null, EventArgs.Empty); // Simulate a timer tick event

这实际上不会触发计时器,而是立即调用您的处理程序,有效地模拟“现在”事件。

答案 1 :(得分:1)

据我所知System.Threading.Timer完全符合您的要求。

它允许您指定何时必须发生第一次调用,然后指定调用之间的间隔。

因此,如果您将第一次调用设置为0毫秒,将间隔设置为一小时,则会立即触发,然后每小时触发一次。

  

duetime参数   类型:System.Int32回调前延迟的时间   被调用,以毫秒为单位。指定Timeout.Infinite以防止   计时器从开始。指定零(0)立即启动计时器。

     

period类型:System.Int32调用之间的时间间隔   回调,以毫秒为单位。指定Timeout.Infinite以禁用   周期性信号。

答案 2 :(得分:0)

只需在调用Start()后立即执行,手动调用该函数。