我有一个按钮,当它点击它时会启动一个存储过程来执行一个sql作业。在按钮我有一个方法。在方法中,我想代码等待2分钟并运行一个sql查询来获取状态,如果status = 4或status = 7然后停止,但如果状态不是4或7,那么相同的代码在两分钟内再次运行,但只有两次。我怎样才能在vb.net网站上实现这一点?以下是我到目前为止所尝试的但是我遇到了错误,我以前从未做过一次。
Dim myTimer As New System.Timers.Timer(2 * 60 * 1000)
Private Sub DisableButton()
btnBertFish.Enabled = False
myTimer.Elapsed = New ElapsedEventHandler(AddressOf (OnTimedEvent()))
End Sub
Private Sub OnTimedEvent()
'Some code that need to execute
End Sub
所以,这些是我得到的错误:Public Event Elapsed(发件人作为对象,e作为System.Timers.ElapsedEventArgs)是一个事件,不能直接调用。使用'RaiseEvent'语句来举起一个事件。
我看过教程和System.Timers,但我无法弄清楚如何开始。有人可以帮助我或指出我正确的方向吗?
答案 0 :(得分:1)
Dim myTimer As New System.Timers.Timer()
myTimer .AutoReset = True
myTimer .Interval = 60 * 1000 '1 minute
AddHandler myTimer.Elapsed, AddressOf OnTimedEvent
dim i as integer=0
Private Sub DisableButton()
btnBertFish.Enabled = False
myTimer.Elapsed = New ElapsedEventHandler(AddressOf (OnTimedEvent()))
End Sub
Private Sub OnTimedEvent()
i += 1
if i= 2 then
' Run your code
'i=2 means the second tick of the timer since i value is increased in each 1 minute
End IF
End Sub
在需要延迟的情况下添加myTimer.Start()
,停止计时器或重置使用计时器块添加代码,但我不清楚thestatus
是什么:
if theStatus = 4 or theStatus = 7 then
myTimer.Stop()
else
i=0
End If