睡眠函数Visual Basic

问题描述

| 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 ::睡眠\'   已使堆栈不平衡。这是   可能是因为托管PInvoke   签名与非托管签名不匹配   目标签名。检查   调用约定和参数   PInvoke签名与目标匹配   非托管签名。     

解决方法

        这很容易。
Threading.Thread.Sleep(3000)
    ,        由于您正在询问.NET,因此应将参数从
Long
更改为
Integer
。 .NET的Integer是32位的。 (经典VB的整数只有16位。)
Declare Sub Sleep Lib \"kernel32.dll\" (ByVal Milliseconds As Integer)
确实,托管方法并不难...
System.Threading.Thread.CurrentThread.Sleep(5000)
执行此操作时请小心。在表单应用程序中,您阻止了消息泵,而没有阻止消息泵,从而使程序似乎已挂起。
sleep
是个好主意。