专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

关于从其他线程更新主线程界面的有关问题

发布时间:2011-06-23 15:56:42 文章来源:www.iduyao.cn 采编人员:星星草
关于从其他线程更新主线程界面的问题
Public   Delegate   Sub   MyInvoke(ByVal   s   As   String)

Public   Class   Form1

        Private   Sub   Button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click
                Dim   t   As   New   Test
                Dim   myThread   As   New   Threading.Thread(AddressOf   t.DoWork)
                myThread.Start()
        End   Sub

        Public   Sub   ChangUI(ByVal   s   As   String)
                '实际运行后,MsgBox( "test ")能弹出,Textbox1没有更新
                MsgBox( "test ")
                TextBox1.Text   +=   s   +   vbCrLf
        End   Sub
End   Class

Public   Class   Test
        Public   Sub   DoWork()
                Dim   mi   As   MyInvoke   =   New   MyInvoke(AddressOf   Form1.ChangUI)
                mi.Invoke( "更新UI ")
        End   Sub
End   Class

大家帮忙看下,ChangUI中的MSGBOX弹出了,但是Textbox1没有更新,为什么呢?

------解决方案--------------------
Public Sub ChangUI(ByVal s As String)
if this.InvokeRequired then
Dim mi As MyInvoke = New MyInvoke(AddressOf Form1.ChangUI)
this.Invoke(mi, new object[]{ "更新UI "})
else

TextBox1.Text += s + vbCrLf
endif
End Sub


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070210

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
有心无力,我也想我这样的问题
------解决方案--------------------
http://blog.csdn.net/chendazhi/archive/2006/05/09/715064.aspx
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: