(8)在VB中实现延时(等待)的几种方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(8)在 VB 中实现延时 (等待 )的几种方法 在程序流程中经常要延时一段时间后再继续往下执行 , 在 VB 中常用的有以下几种方法 (因为 Timer 控件打乱了程序 的流程所以一般不用它 ): 1.使用 API 函数 Sleep 新建一个工程 ,添加一个 TextBox 控件和一个 CommandButton 控件 ,再将以下代码复制到代码窗口 ‘声明 : Private Declare Sub Sleep Lib kernel32 (ByVal dwMilliseconds As Long) Private Sub Command1_Click() Text1 = sleep begin Sleep 3000 Text1 = sleep end End Sub 按 F5 执行 ,按下 Command1 按钮 ,程序停止执行 ,3 秒钟内不对用户的操作做出反应 ,并且 Text1 里的内容并没有发生改变 . 这是怎么回事呢 ?原来 ,Sleep 函数功能是将调用它的挂起 dwMilliseconds 毫秒时间 ,在这段时间内 ,此进程不对用户操 作做出反应 ,程序中虽然将 Text1 的 Text 属性改成 Sleep begin,但还没等完成对屏幕的更新进程就被挂起了 ,对用户来 说程序象是死机一样。所以这种方法虽然简单 ,但并不适用 . 2.使用 Timer() 函数 这是用的最多的一种方法 ,也是在 VB 联机手册中所推荐的。 添加一个 CommandButton 控件 ,再将以下代码添加到代码窗 口中 : Private Sub Command2_Click() Dim Savetime As Single Text1 = Timer begin Savetime = Timer ‘记下开始的时间 While Timer lt; Savetime + 5 ‘循环等待 DoEvents ‘转让控制权,以便让处理其它的事件。 Wend Text1 = Timer ok End Sub 这种方法虽然也很简单 ,但却有有一个致命缺陷 ,那就是 Timer 函数返回的是从午夜开始到现在经过的秒数。所以 Timer 返回的最大值也只是 60*60*24-1 秒 ,如果从一天的 23:59:58 秒开始计时等待 5 秒 , 那么程序会永远地循环下去。 要进行改良 ,就要加上判断是否又开始了新的一天 , 那岂不是太麻烦 .下面给大家推荐另一个 Windows API 函数 . 3.使用 Windows API 函数 timeGetTime() timeGetTime 函数没有参数 ,返回值是从开机到现在所经历的毫秒数 ,这个毫秒数是非周期性递增的 ,所以不会出现 Timer() 函数出现的问题 ,而且这种方法的精确性高于上一种方法。 添加一个 CommandButton 控件 ,再将以下代码添加到代码窗口 中: ‘声明 Private Declare Function timeGetTime Lib winmm.dll () As Long Private Sub Command3_Click() Dim Savetime As Double Text1 = timeGetTime begin Savetime = timeGetTime ‘记下开始时的时间 While timeGetTime lt; Savetime + 5000 ‘循环等待 DoEvents ‘转让控制权,以便让操作系统处理其它的事件。 Wend Text1 = timeGetTime end End Sub 按 F5 执行程序 ,按这几个按钮 ,您可以感受一下这几种方法的优劣。

文档评论(0)

183****6506 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档