Создайте таймер, установите интервал для 500 миллисов econds (.5s), установка на 1 секунду может привести к пропущению галочки. Это запустит событие галочки, проверьте, соответствуют ли текущие минуты времени и секунды нулю, затем срабатывает. Таймер отключается между звуковым обстрелом, если таймер снова проверяет во втором (поскольку таймер вызывается каждые полсекунды).
ReadOnly _tmr As New Timer
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
_tmr.Interval = 500
AddHandler _tmr.Tick, AddressOf tmr_Tick
_tmr.Enabled = True
End Sub
Private Sub tmr_Tick(sender As Object, e As EventArgs)
Dim curDateTime As DateTime = Now
If curDateTime.Minute = 0 And curDateTime.Second = 0 Then
_tmr.Enabled = False
PlaySound()
_tmr.Enabled = True
End If
End Sub
Private Sub PlaySound()
'// Play Sound
End Sub
Вы уже ответили на поводу. Попробуйте Googling ** проверить системное время на <язык или платформу, которую вы используете> **, и сделать что-то подобное. Конечно, могут быть лучшие общие проекты, такие как Unix crontab, но Google действительно ваш друг для этих небольших задач программирования. –
Ya, проверить время системы Google, а затем поместить этот код внутри обработчика событий тика таймера, если вы хотите периодически его проверять. – soohoonigan
Вы можете использовать [Таймер] (https://msdn.microsoft.com/en-us/library /system.windows.forms.timer(v=vs.110).aspx) и установите его интервал на оставшееся время. Затем, когда событие Tick будет поднято, вычислите время до следующего часа и установите его интервал соответственно - это позволит избежать дрейфа. Другие таймеры доступны, если вы не делаете это в форме Windows. –