我有一个代码,用于检查当天的特定时间来执行某个功能。为了测试它,我有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
只会发生一次,但它会不停地弹出来。
如果我有一个工作功能,它可能会每秒运行一次。我该怎么办呢?
答案 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)