我有一个间隔为3600000的计时器,可以翻译成一个小时,所以当我这样做时
timer.Start()
它将从下一个小时开始每小时执行以下代码
private void timer_Tick(object sender, EventArgs e)
{
.....
}
但如果我希望它也被执行第二次我调用timer.Start()然后每小时一次呢?
答案 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()后立即执行,手动调用该函数。