前言:
此时你们对“php usleep 毫秒”大约比较着重,咱们都想要分析一些“php usleep 毫秒”的相关文章。那么小编同时在网摘上网罗了一些有关“php usleep 毫秒””的相关资讯,希望小伙伴们能喜欢,小伙伴们快快来学习一下吧!大家好,我们今日继续讲解VBA代码解决方案的第82讲内容:如何利用代码让程序延时,SLEEP函数和timeGetTime函数两个API函数的讲解。
在上一讲中我们讲了使用Wait方法,但这种方法的不足是只能提供精度为1秒的延时,如果需要更低精度的延时,需要使用Sleep API函数,如下面的代码所示。
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub MyTypeDemo()
Dim sTest As String
Dim i As Integer
sTest = "欢迎你来到这个平台学习VBA!"
For i = 1 To Len(sTest)
Range("A1").Value = Left(sTest, i)
Sleep 200
Next
End Sub
代码解析:
MyTypeDemo过程模拟打字效果在单元格A1中输入一行文字。"欢迎你来到这个平台学习VBA!"
第1行代码Sleep API函数声明,参数dwMilliseconds为以毫秒为单位的时间长度。
在第6行到第9行代码在每次循环时增加显示的数据,并且在每次增加时使用Sleep语句延时200毫秒,好像字符逐个输入,从而达到模拟打字的效果.
在上面的实例中,对于精确延时使用的sleep函数,使用这个函数要注意的是,由于这个函数是Windows API函数,使用前必须先声明,然后使用。 虽然sleep函数延时是毫秒级的,精确度比较高,但它在延时时会将程序挂起,使操作系统暂时无法响应用户操作,所以在长延时的时候不适合使用它。
更好的办法是使用timeGetTime函数,timeGetTime函数返回的是开机到现在的毫秒数,可以支持1毫秒的间隔时间,而且永远增加,不存在回头的问题。当然不是永远不回头,毕竟Long型变量(双字,4字节)也是有取值范围的,这个值在0到2^32之间。大约49.71天。
同sleep函数一样,timeGetTime函数是Windows API函数,使用前必须先声明,即:
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
延时函数和上面的一样,只是将sleep函数换成timeGetTime:
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Sub S_timeGetTime()
Dim time1 As Long
time1 = timeGetTime
Range("A2").Value = timeGetTime
Do
Range("A3").Value = timeGetTime
DoEvents
Loop While timeGetTime - time1 < 1000
MsgBox "时间到!"
End Sub
注意:延时时间单位是毫秒。由于延时函数中使用了 DoEvents语句交出了系统控制权,所以不会影响用户的其它操作。
代码截图:
运行:
今日内容回向:
1 如何实现程序的延时呢?
2 本节讲了两种延时的方式,是否理解呢?
标签: #php usleep 毫秒 #vb timegettime