0

我目前正在尝试制作一个简单的老虎机应用程序。我试图让它像一个带有旋转器的传统老虎机,它通过它并显示不同的图片。我一直在尝试使用在此处的许多类似帖子中找到的 Sleep 命令,但它不断使我的程序崩溃。我测试的最后一个coe如下:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Label1.Text = CStr(Int(Rnd() * 10))  'pick numbers
        Label2.Text = CStr(Int(Rnd() * 10))
        Label3.Text = CStr(Int(Rnd() * 10))
    Threading.Thread.Sleep(1000)

    Label1.Text = CStr(Int(Rnd() * 10))  'pick numbers
    Label2.Text = CStr(Int(Rnd() * 10))
    Label3.Text = CStr(Int(Rnd() * 10))
    Threading.Thread.Sleep(1000)

    Label1.Text = CStr(Int(Rnd() * 10))  'pick numbers
    Label2.Text = CStr(Int(Rnd() * 10))
    Label3.Text = CStr(Int(Rnd() * 10))
    Threading.Thread.Sleep(1000)
End Sub

任何人都可以就我需要更改的内容提出建议吗?我希望它每秒弹出几个不同的数字并在它们之间切换。感谢您的任何帮助,您可以提供

4

2 回答 2

1

不要调用SleepUI 线程。

当您的代码在 UI 线程上运行时,UI 无法更新。
因此,你所有的方法都注定要失败。

相反,了解新的Async语言功能并编写

Await Task.Delay(1000)
于 2013-09-01T01:38:35.667 回答
0

您不需要声明 kernel32 本机函数,因为 Threading.Thread.Sleep() 对托管代码执行相同的操作。后者是首选,实际上您已经在事件处理程序中使用了后者。

请参阅kernel32.dll Sleep 和 Thread.Sleep() 之间的任何区别

于 2013-09-01T01:42:00.097 回答