我需要一种方法来找出从0开始的时间到4秒的时间。
我的代码如下:
我有一个名为weightdelaycount的全局变量,每1000个时间间隔递增一次。
Private Sub Timer_weightcheck_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer_weightcheck.Tick
weightdelaycount = weightdelaycount + 1
End Sub
现在我有了无限运行的do while循环,只能根据两个条件停止。 weightchange = True或时钟= 4秒。
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
weightdelaycount = 0
Timer_weightcheck.Enabled = True
Do While 1
If (weightchange() = True ) Then
Timer_weightcheck.Enabled = False
Exit Do
End If
If (weightdelaycount = 4) Then
Timer_weightcheck.Enabled = False
Exit Do
End If
Loop
MessageBox.Show(weightdelaycount)
End Sub
从上面的例程中可以看出,如果满足这两个条件,我正在使用exit Do退出循环。问题是如果weightchange()不是True并且4秒后系统没有停止。我可以在那里延迟,然后它可以工作,但我需要准确的从我从秤得到的重量值。如果我延迟,那么值将不准确。有办法解决这个问题吗?
提前谢谢
答案 0 :(得分:1)
您可以使用秒表,而不是使用计时器。秒表启动后,此代码将循环至4000毫秒。你永远不会让它在4000毫秒停止完全,因为通过Do..Loop(最小的真实)运行所需的时间,但我认为在足够接近之后几毫秒。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim weightdelaycount = 0
Dim timer As New Stopwatch
timer.Start()
Do
If (weightchange() = True) Then
timer.Stop()
Exit Do
End If
Loop Until timer.ElapsedMilliseconds > 4000
timer.Stop()
MessageBox.Show(timer.ElapsedMilliseconds)
End Sub