永发信息网

vb.net 中我现实现,线程的暂停与开始!请教高手一下!请留下你的联系方式!

答案:2  悬赏:20  手机版
解决时间 2021-02-11 00:06
  • 提问者网友:战皆罪
  • 2021-02-10 19:35
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
lbl.Visible = True
Sleep(5000)
lbl.Text = "我是中国人"
Sleep(3000)
lbl.Text = "我爱自己的祖国"
End Sub
点一下按扭,让lbl.Text 变两次,用sleep明显不行,所以请教一下各位大侠!!
最佳答案
  • 五星知识达人网友:长青诗
  • 2021-02-10 19:56
在你给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后,当前进程的执行效率会有大幅降低,因为移交控制权必然损失当前进程的运行效率。
全部回答
  • 1楼网友:骨子里都是戏
  • 2021-02-10 20:28
private sub seta() msgbox("") end sub private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click dim t1 as threading.thread = new threading.thread(addressof seta) t1.start end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯