大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以利用Timer时钟控件实现,这样做的好处是无需等待,释放CPU时间去做别的事
创新互联建站-专业网站定制、快速模板网站建设、高性价比文成网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式文成网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖文成地区。费用合理售后完善,10余年实体公司更值得信赖。
在你给textbox设置text值后直接使用sleep(),因为在使用sleep()的时候,当前的主进程是被挂起了,也就是说设置的text属性后,还来不及在屏幕上显示lbi的内容就执行了sleep,所以在执行sleep()挂起主进程前,你必须让textbox的内容先显示出来再执行sleep,可尝试使用下DoEvents()将控制权暂时移交一下,让系统有时机来刷新textbox里面的内容,让系统有机会来刷新textbox里面的内容。由于我没有安装visual studio的开发环境,无法调试代码的正确性,但我记得我以前也遇到此类问题,采取的DoEvents()的方式。你可尝试下。
lbl.Visible = True
Sleep(5000)
lbl.Text = "我是中国人"
lbi.Refresh '刷新一下lbi,具体你可以调试下,看需要不需要这条
Application.DoEvents() ‘设置完lbi的text属性,将操作权限释放一下,让系统有机会显示lbi的内容。
Sleep(3000) ’待显示后,再执行挂起
lbl.Text = "我爱自己的祖国"
lbi.Refresh ‘同上
Application.DoEvents() ’同上
DoEvents()的功能解释是:转让控制权,以便让操作系统处理其它的事件。
如执行一次不行,可尝试重复多执行几次,特别在循环语句中,对于窗口的刷新显示DoEvents特别有用,但是在循环体内使用了DoEvents后,当前进程的执行效率会有大幅降低,因为移交控制权必然损失当前进程的运行效率。
同学。。你这里的写法其实根本没有用到多线程
原因很简单
你是定义了一个T的新线程,但是很可惜你在BeginDoSub这个独立的线程中又定义了一个deSomeSub的委托,并且直接用Me.Invoke把实际的执行任务提交给界面主线程运行了
所以你的图片的处理函数实际上是在主线程中运行的,新线程等于没用
正确的作法是,T定义为SomeSub这个函数为入口的线程,并启动它
在界面进度条更改的时候再使用Invoke来调用委托来进行界面更改。
自己再好好看看吧,时间问题我要走了。