首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

生手問題 大家幫下忙

2011-12-19 
新手問題 大家幫下忙代碼如下:ImportsSystem.ThreadingPublicClassForm1PrivateSubButton1_Click(ByValsen

新手問題 大家幫下忙
代碼如下:

Imports   System.Threading

Public   Class   Form1

        Private   Sub   Button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click
                Dim   th1,   th2   As   Thread
                Dim   ym   As   AClass
                ym   =   New   AClass
                th1   =   New   Thread(New   ThreadStart(AddressOf   ym.Method1))
                th2   =   New   Thread(New   ThreadStart(AddressOf   ym.Method2))
                th1.Start()
                th2.Start()
        End   Sub

End   Class

Public   Class   AClass

        Public   Sub   Method1()
                Dim   i   As   Integer
                For   i   =   1   To   100
                        listbox1.items.add( "這是線程一: "   &   i)
                Next   i
        End   Sub

        Public   Sub   Method2()
                Dim   ii   As   Integer
                For   ii   =   1   To   100
                        listbox1.items.add( "這是線程二: "   &   ii)
                Next   ii
        End   Sub

End   Class


編譯不了說提示:Name   "listbox1 "   is   not   declared

大俠們,要如何才行呀



[解决办法]
你的listbox1在UI 线程中,不能这样使用。
Public Class AClass

Public Sub Method1()
Dim i As Integer
For i = 1 To 100
listbox1.items.add( "這是線程一: " & i))////????问题在这里
Next i
End Sub

Public Sub Method2()
Dim ii As Integer
For ii = 1 To 100
listbox1.items.add( "這是線程二: " & ii)////????问题在这里
Next ii
End Sub

可以采用将listbox1.items.add用另外一个方法实现,而在哪个地方采用me.invoke(方法名).
你可以试一试.
[解决办法]
也就是将后台线程移交给UI线程.

热点排行