在特定时间执行一次函数

时间:2013-12-01 01:04:40

标签: vb.net

我有一个代码,用于检查当天的特定时间来执行某个功能。为了测试它,我有ff代码:

 Private Sub tmrCheckTime_Tick(sender As Object, e As EventArgs) Handles tmrCheckTime.Tick
    If DateTime.Now.TimeOfDay >= New TimeSpan(9, 00, 0) Then
        MessageBox.Show(DateTime.Now.TimeOfDay.ToString)
    End If
End Sub

我原以为MessageBox.Show只会发生一次,但它会不停地弹出来。

如果我有一个工作功能,它可能会每秒运行一次。我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

你只是在检查你是否已经过了时间,所以它仍然是真的并且继续执行。 你可能想要的是定时器的滴答为1天(而不是让它一直运行并检查你是否应该再次调用该功能)。

另外1天是一个巨大的时间,这是一个长期运行的应用程序?听起来像任务调度程序是你想要的,而不是程序中的计时器。

编辑以澄清(代码版本)

Private Sub tmrCheckTime_Tick(sender As Object, e As EventArgs) Handles tmrCheckTime.Tick   
    MessageBox.Show(DateTime.Now.TimeOfDay.ToString)

End Sub

然后在您注册计时器的程序中:

this.Timer = new System.Threading.Timer(tmrCheckTime_Tick,0,(1000*60*60*24));
// Timer is set in milliseconds so we set it to run every 1000 (millisecond => second) * 60 (second => minute) * 60 (minute => hour) * 24 (hour => day)