VB Sleep垃圾等待函数
时间:2010-09-21
来源:互联网
其实主要是一个关于SLEEP的问题。
SLEEP使用后则程序就处于一个全局停顿状态,程序不会接受任何新事件。所以我一直感觉SLEEP确实是一个很垃圾的等待函数。
VB code
真的深恶痛绝SLEEP这个垃圾函数。难道学了VB的真的只有去转行学VC 或者.NET?
难道这个就是VB的瓶颈么?谁帮忙看看
SLEEP使用后则程序就处于一个全局停顿状态,程序不会接受任何新事件。所以我一直感觉SLEEP确实是一个很垃圾的等待函数。
VB code
'所以多数情况下在VB过程中等待我是这么写的 DO Doevents if XXX then exit do LOOP '但是一般这样使用循环会超占CPU,所以后来改为这样 DO Doevents Sleep 1 LOOP '但是我感觉效果也不好,因为SLEEP总会去让其他事件也停止响应。 '我只想这样 DO '在过程中不费CPU,不会影响本程序其他时间的产生的等待上1秒钟,这样也不行么? if XXX then exit do LOOP
真的深恶痛绝SLEEP这个垃圾函数。难道学了VB的真的只有去转行学VC 或者.NET?
难道这个就是VB的瓶颈么?谁帮忙看看
作者: tk600158 发布时间: 2010-09-21
VB code
Private Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long) '声明
作者: lxq19851204 发布时间: 2010-09-21
好啊,你自己写个编程语言出来,搞一个好的开发平台,我们也好跟你沾沾光。
作者: of123 发布时间: 2010-09-21
你用定时器啊。
把执行过程从流程上拆为多个过程,再由定时器事件进行调用。
把执行过程从流程上拆为多个过程,再由定时器事件进行调用。
作者: myjian 发布时间: 2010-09-21
Sleep在VC中常在新开的线程里用,他会让整个线程处于停止状态,CPU会在指定的时间内完全不去处理那个线程的东西。而在VB中,因为多线程的方式不稳定,所以通常都是在单线程下跑,如果用了Sleep来让线程停止,那么就会有卡死的现象(即使在VC里单线程这么跑也会有这种现象),所以才会出现你所说的问题。
在VB中要想等待指定的时间,有VB的方法可以实现,不能按照VC的开发方式思考。就像VC开发当中,很多东西不能用VB的开发方式思考一样。在VB中可以这样实现类似的功能。
VB code
在VB中要想等待指定的时间,有VB的方法可以实现,不能按照VC的开发方式思考。就像VC开发当中,很多东西不能用VB的开发方式思考一样。在VB中可以这样实现类似的功能。
VB code
Private Declare Function GetTickCount Lib "kernel32" () As Long Private Sub Command1_Click() Dim STime1 As Long Dim STime2 As Long STime1 = GetTickCount VB_Sleep 1000 STime2 = GetTickCount MsgBox STime1 & " - " & STime2 End Sub Private Sub VB_Sleep(ByVal dwMilliseconds As Long) Dim SaveTime As Long Dim NowTime As Long Dim IsWait As Long IsWait = 0 SaveTime = GetTickCount Do DoEvents NowTime = GetTickCount If NowTime - SaveTime >= dwMilliseconds Then IsWait = 1 End If Loop While IsWait = 0 End Sub
作者: SupermanKing 发布时间: 2010-09-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28