以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助]如何能让程序在运行中等待一定时间再继续运行  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=62158)

--  作者:kof54321
--  发布时间:2014/2/28 10:52:00
--  [求助]如何能让程序在运行中等待一定时间再继续运行
比如等2秒再继续执行后面的代码
--  作者:王锋
--  发布时间:2014/3/3 12:10:42
--  

稍等正在制作范例


--  作者:kof54321
--  发布时间:2014/3/4 8:44:01
--  

好 的,谢谢


--  作者:王锋
--  发布时间:2014/3/4 17:52:48
--  

先做个延时函数API

 

该示例使用金字塔的VBS系统调用WINDOWS API中的Sleep函数来实现延时功能
参数为延时毫秒数

Sub StockSleep(slSecond)
Set Wrap = CreateObject("DynamicWrapper")
Wrap.Register "KERNEL32.DLL", "Sleep","i=u","R=l"
Wrap.Sleep(slSecond)
End Sub

 

但是如果直接使用这个API延时,会导致整个延时期间整个金字塔失去响应,解决方案是使用循环,循环中使用小的延时判断,中间穿插响应函数,这样延时期间整个软件还会继续工作了。

 

\'延时2秒程序范例

Sub Test()

FOR I = 0 TO 20

  StockSleep(100)

  Application.PeekAndPump

NEXT

MsgBox "延时完成"

End Sub