Visual Basicには、スレッドを使用しない単純なスリープ関数がありますか?.
C:sleep(1);
にあるような類似のもの
また、このコードを試しました:
Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)
' pause for 5 seconds
Sleep 5000
...しかし、うまくいきませんでした。このエラーが発生しました:
PInvokeStackImbalanceが検出されましたメッセージ:PInvoke関数 'Ganzenbordspel!Ganzenbordspel.Spel :: Sleep'の呼び出しでスタックのバランスが崩れました。これは、管理されたPInvoke署名が管理されていないターゲット署名と一致しないためです。 PInvoke署名の呼び出し規則とパラメーターが、ターゲットのアンマネージ署名と一致することを確認します。
これはとても簡単です。
Threading.Thread.Sleep(3000)
.NETについて尋ねているので、パラメーターをLong
からInteger
に変更する必要があります。 .NETの整数は32ビットです。 (クラシックVBの整数は16ビットのみでした。)
Declare Sub Sleep Lib "kernel32.dll" (ByVal Milliseconds As Integer)
本当に、マネージド方式は難しくありません...
System.Threading.Thread.CurrentThread.Sleep(5000)
これを行うときは注意してください。フォームアプリケーションでは、メッセージポンプとそうでないものをブロックし、プログラムがハングしたように見せます。 sleep
が良いアイデアになることはめったにありません。