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

Threading.Thread.Sleep() はマネージ コードで同じことを行うため、kernel32 ネイティブ関数を宣言する必要はありません。後者が推奨されます。実際、イベント ハンドラーで既に使用しているものです。

kernel32.dll Sleep と Thread.Sleep() の違いを参照してください。

于 2013-09-01T01:42:00.097 に答える