vb这个延时函数怎么用。。追加高分

来源:百度知道 编辑:UC知道 时间:2024/05/26 19:00:45
Public Function Delayt(ByVal num As Long) '延时函数
Dim sTime As Long
sTime = 1
While sTime <= num
sTime = sTime + 1
DoEvents
Sleep 1
Wend
End Function

这是模块 怎么在form里用 我延迟10秒 然后继续下面的代码。。
sleep函数会造成程序假死。。。 我想找个不会假死的延时函数代替。。

你这个函数不标准,为什么没有返回值呢?
如果不需要返回值,你可以改用sub来声明,
然后在需要进行延时的地方调用
Delayt(你要延时的毫秒数)
就可以。
注意:1秒等于1000毫秒。
我注意到你这个函数中用到了Sleep函数,这是一个Windows API 函数,你应该先声明后使用。声明方法为:
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Public Sub Delayt(ByVal num As Long)
dim i as long
for i = 1 to num
DoEvents
Sleep 1
next
End Sub
理论上是成立的

这个程序根本不行,不准确。

sTime = sTime + 1
DoEvents
】这两句代码的执行也需要时间,而且远远大于1ms。这就会导致延迟时间变长。
其实直接用sleep就行了。
重写函数如下:

Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Public Sub Delayt(ByVal num As Long)
DoEvents
Sleep num
End Sub

Private Sub Command1_Click()
Debug.Print Now
Delayt 10
Debug.Print Now