VB 循环太长时间就停止响应了
一个计算量比较大的循环,用C语言做可以一直循环到结束,但是用VB就会停止响应,怎样才能让VB也一直循环下去呢?doevents是干什么的我没用到数据库,我想实现的是让它无...
一个计算量比较大的循环,用C语言做可以一直循环到结束,但是用VB就会停止响应,怎样才能让VB也一直循环下去呢?
do events是干什么的
我没用到数据库,我想实现的是让它无限循环,点击另一个命令按钮可以让循环停止,先不管怎么停止,现在只要循环一段时间就停止响应 展开
do events是干什么的
我没用到数据库,我想实现的是让它无限循环,点击另一个命令按钮可以让循环停止,先不管怎么停止,现在只要循环一段时间就停止响应 展开
展开全部
楼主,在循环里写一句DoEvents就行了,加上他,无论多大的计算量,或多长时间的循环,都能循环下去而有响应。
Doevents就是让程序执行到这条语句时,执行其它Function或Sub的语句,这样就不会死循环了。相当于多线程
举个例子
要一个循环1000秒才后结束,如果这样写
dim i
i = timer
do until timer - i > 1000
loop
这样的话在十秒内程序就会什么都干不了,没有响应,甚至会程序崩溃。因为1000秒内程序一直在执行这个循环,不能执行别的语句。
但如果在循环体内加上doevents的话
dim i
i = timer
do until timer - i > 1000
doevents
loop
就会发现程序1000秒内可以干其它事情,不会没响应,而且1000秒后循环准时跳出,达到目的。
因为每次循环,都会执行一次doevents语句,这个语句就会让程序在这瞬间暂停执行下一句,而执行别的Function或Sub的语句。然后再跳转回来继续执行doevents的下一句,所以程序不会出现死循环
纯手打,望支持,谢谢
Doevents就是让程序执行到这条语句时,执行其它Function或Sub的语句,这样就不会死循环了。相当于多线程
举个例子
要一个循环1000秒才后结束,如果这样写
dim i
i = timer
do until timer - i > 1000
loop
这样的话在十秒内程序就会什么都干不了,没有响应,甚至会程序崩溃。因为1000秒内程序一直在执行这个循环,不能执行别的语句。
但如果在循环体内加上doevents的话
dim i
i = timer
do until timer - i > 1000
doevents
loop
就会发现程序1000秒内可以干其它事情,不会没响应,而且1000秒后循环准时跳出,达到目的。
因为每次循环,都会执行一次doevents语句,这个语句就会让程序在这瞬间暂停执行下一句,而执行别的Function或Sub的语句。然后再跳转回来继续执行doevents的下一句,所以程序不会出现死循环
纯手打,望支持,谢谢
展开全部
LZ说的VB停止响应我可以这么认为吗?
1:数据库停止响应
如果是这个情况,那么就设置一下数据库的响应时间,在连接字符串里设置。
2:程序停止响应
理论上说,VB程序不会停止响应的,只是假死或者死屏的一种情况,LZ可以设置断点看一看循环的时间是多久,正常如果程序的循环不是上百万次的话,不会死屏的。
1:数据库停止响应
如果是这个情况,那么就设置一下数据库的响应时间,在连接字符串里设置。
2:程序停止响应
理论上说,VB程序不会停止响应的,只是假死或者死屏的一种情况,LZ可以设置断点看一看循环的时间是多久,正常如果程序的循环不是上百万次的话,不会死屏的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假死吧,在循环里面用 do events 试试看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
VB比较吃性能,估计是你电脑比较差
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询