热心人来帮帮忙阿

时间:2020-11-29 21:24:04
我在使用VB得时候发现一个问题,以前6.0得时候就出现过
   俺有个循环需要很长时间才能执行结束,我希望在循环前给予提示,用LABEL显示一些信息,但是,奇怪得是该LABEL并没有按程序显示,而是一直等到循环执行结束.就像循环占据了所有的资源一样,我实验过了,在一个循环执行的过程前对FORM的所有操作几乎都是无效的,只有PROGRESSBAR例外,谁能告诉我是为什么和解决的方法.
   不知道为什么,这几天提出的问题都没有人能解决,是否我分数给的少啦?但是最多也只能给100阿

8 个解决方案

#1


居然没有人回复!?!?!

#2


顶阿顶

#3


vb6中用DOEVENTS
VB.Net中用APPLICATION.DOEVENTS
不然LABEL是无法刷新的。

#4


System.Windows.Forms.Application.DoEvents()
LABEL
System.Windows.Forms.Application.DoEvents()
LABEL.visible=false

#5


当你循环的执行时间比较长了,而又想响应用户事件的话,还可以使用多线程,将循环的执行交给一个新线程

#6


如何实现多线程阿
另外,那个DOEVENTS是干什么用的

#7


Sub Calc()
...
End Sub

Sub Button1_Click(...)...
     Dim t As New Thread(AddressOf Calc)
     t.Start()
End Sub

DoEvent的作用就是在当前这一句的时候,执行消息处理循环,处理那些积压下来的消息。

#8


加这样一句代码,试试
Thread.Sleep(2500)括号内是暂停的时间,单位毫秒

#1


居然没有人回复!?!?!

#2


顶阿顶

#3


vb6中用DOEVENTS
VB.Net中用APPLICATION.DOEVENTS
不然LABEL是无法刷新的。

#4


System.Windows.Forms.Application.DoEvents()
LABEL
System.Windows.Forms.Application.DoEvents()
LABEL.visible=false

#5


当你循环的执行时间比较长了,而又想响应用户事件的话,还可以使用多线程,将循环的执行交给一个新线程

#6


如何实现多线程阿
另外,那个DOEVENTS是干什么用的

#7


Sub Calc()
...
End Sub

Sub Button1_Click(...)...
     Dim t As New Thread(AddressOf Calc)
     t.Start()
End Sub

DoEvent的作用就是在当前这一句的时候,执行消息处理循环,处理那些积压下来的消息。

#8


加这样一句代码,试试
Thread.Sleep(2500)括号内是暂停的时间,单位毫秒