热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何让一个For循环中,每执行完一个过程后暂停3秒再执行下个过程,再循环?

查了好久,看了很多老大们提到用如下方法:PublicDeclareSubSleepLibkernel32AliasSleep(ByVal
查了好久,看了很多老大们提到用如下方法:
Public   Declare   Sub   Sleep   Lib   "kernel32"   Alias   "Sleep"   (ByVal   dwMilliseconds   As   Long)  

Call Sleep(5000)

但是在我机子上根本不生效,请问是我Win系统问题,还是这个方法我哪里用得不对。

如下示范循环。

for i=1 to 10
执行语句1
暂停3秒
执行语句2
next

我是VB菜鸟,请哪位达人帮我解决,谢谢先!

28 个解决方案

#1


for i=1 to 10 
执行语句1 
暂停3秒  'Sleep(3000)
执行语句2 
next 

#2


引用 1 楼 unsigned 的回复:
for i=1 to 10 
执行语句1 
暂停3秒 'Sleep(3000) 
执行语句2 
next 


是我报问题写错了。

但是sleep在我的机子上不生效,半没有暂停3秒。。

#3


你的机子太牛了!让他睡觉都不睡(Sleep),那就让他干(Do)个不停吧.(^_^)

    Dim i As Integer, sngTimeA As Single
    
    For i = 0 To 10
        sngTimeA = Timer    '起始时间
        Debug.Print "执行语句1于 " & sngTimeA
       Do While Timer - sngTimeA < 3   '空循环3秒
        Loop
        Debug.Print "执行语句2于 " & Timer
    Next

#4


do events和timer相结合。

for i=1 to 10 
    执行语句1 
    StartTime = Timer    ' 设置开始暂停的时刻。
    Do While Timer < StartTime + 3 '暂停3秒
        DoEvents    ' 将控制让给其他程序。
    Loop 
    执行语句2 
next 

#5


楼主的机子是“相当的敬业”啊!!!


#6


for i=1 to 10 
    执行语句1 
    StartTime = Timer    ' 设置开始暂停的时刻。
    Do While Timer < StartTime + 3 '暂停3秒
        DoEvents    ' 将控制让给其他程序。
    Loop 
    执行语句2 
next 

#7


我有个帖子,里面有解决方法,使用延时函数,可以控制任意的循环次数时间长度,你搜索那个帖子看看有没有帮助

#8


楼主的机子肯定得了甲亢了

#9


使用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 < Savetime + 5000 '循环等待
DoEvents '转让控制权,以便让操作系统处理其它的事件。
Wend
Text1 = "timeGetTime end"
End Sub

#10


newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) +9
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime

这个我想更好用一些也不用声明之类的,不过我只在EXCELL中用哦,很好用的!!

#11


楼主的机器确实牛...

#12


引用 6 楼 clear_zero 的回复:
for i=1 to 10 
    执行语句1 
    StartTime = Timer    ' 设置开始暂停的时刻。 
    Do While Timer < StartTime + 3 '暂停3秒 
        DoEvents    ' 将控制让给其他程序。 
    Loop 
    执行语句2 
next 


请教一下:在Do循环里的DoEvents 有优势吗?

#13


呵呵

#14


路过顶顶

#15


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim jia As Integer
Private Sub Command1_Click()
jia = 0
For i = 1 To 20
jia = jia + 1
Label1.Caption = jia
Sleep (3000)
 DoEvents
Next
Debug.Print "执行完毕"End Sub
 
发现一个古怪问题,Command1一步执行之后,开始计数时,再点几下Command1时,jia的值并不为0,好像并没有执行jia = 0 语句

#16


你应该

Label1.Caption = jia 
DoEvents 
DoEvents 
jia = jia + 1
Sleep (3000) 

#17


谢谢啊 16楼老大
原来代码先后顺序不对。
你去我发的贴顶一下,我去结贴。

#18


我要的是For i = 1 To 20 时结束过程。我说的这种情况。for 的终值会大于20

#19


路过顶顶

#20


我对SLEEP函数不生效更感兴趣........

LZ能不能详细测试一下?

#21


延时函数  API的 sleep就可以的了...

#22


引用 12 楼 xbin_2009 的回复:
引用 6 楼 clear_zero 的回复:
for i=1 to 10 
    执行语句1 
    StartTime = Timer    ' 设置开始暂停的时刻。 
    Do While Timer < StartTime + 3 '暂停3秒 
        DoEvents    ' 将控制让给其他程序。 
    Loop 
    执行语句2 
next 
 

请教一下:在Do循环里的DoEvents 有优势吗?

这点我也不明白??也想问个究竟

#23


引用 15 楼 zhuhuofong 的回复:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 
Dim jia As Integer 
Private Sub Command1_Click() 
jia = 0 
For i = 1 To 20 
jia = jia + 1 
Label1.Caption = jia 
Sleep (3000) 
DoEvents 
Next 
Debug.Print "执行完毕"End Sub 

发现一个古怪问题,Command1一步执行之后,开始计数时,再点几下Command1时,jia的值并不为0,好像并没有执行jia = 0 语句 

怎么运行那么慢?!!这是什么问题

#24


15楼的问题:
sleep 是让CPU休息,什么也不干
oevents是让CPU去听别人的指派,腾出精力去干别的去,这二个不要同时用啊

#25


引用 24 楼 zydscaline 的回复:
15楼的问题: 
sleep 是让CPU休息,什么也不干 
oevents是让CPU去听别人的指派,腾出精力去干别的去,这二个不要同时用啊

Sleep是告诉OS在一定时间内暂时不分配CPU时钟给当前线程
DoEvents通常用在循环等作业当中,用于处理消息,相当于执行一次
PeekMessage + TranslateMessage + DispatchMessage

#26


顶楼上

#27


关于Doevents函数的解释和例子 

http://tieba.baidu.com/f?kz=164436320

#28


Sleep不起作用?
第一次听说。
不过有你有很多方法可以实现Sleep的功能。

推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
author-avatar
beitianmolang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有