vb中的基本计时器错误

时间:2015-03-04 16:43:21

标签: vb.net timer

我使用此代码: -

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If button.Location.Y >= 618 Then
    MessageBox.Show("You lost!", "Failure", MessageBoxButtons.RetryCancel)
    Timer1.Enabled = False
    End If
    End Sub

让我们假设条件总是为真然后代替禁用timer1,它显示消息框无限次。但是如果我首先写Timer.enable = false然后是messagebox然后计时器停止。为什么会发生这种情况

1 个答案:

答案 0 :(得分:1)

因为嘀嗒声是围绕异步方式发射的。如果前一个没有完成,则可以同时进行多个刻度线执行(并且在您的情况下它没有,因为它等待消息Box被点击掉)。这意味着当消息框正在等待" Ok"其他蜱事件正在解雇(因为你还没有到达被禁用的部分)。

您可能希望在MessageBox之前放置Timer1.Enabled = false,尽管可能仍然可能遇到竞争条件,但不太可能,您想要测试它。