多线程中传递参数的问题!! 请高手帮忙!!
在线程中,我为了能改变窗体上控件的属性.我用了下面的方法
Dim s As New MySubDelegate(AddressOf Tsub1)
Me.Invoke(s)
我是在Tsub1中改变窗体上控件的属性.
问题是: 我怎么给 Tsub1 中传递一个参数???
[解决办法]
在MSDN的示例中已经可以传递参数了。注意msd.Invoke(10)里面的10就是传递的值。
代码如下:
---------------------------------------------
Delegate Sub MySubDelegate(ByVal x As Integer)
Protected Sub Test()
Dim c2 As New class2()
' Test the delegate.
c2.DelegateTest()
End Sub
Class class1
Sub Sub1(ByVal x As Integer)
MessageBox.Show( "The value of x is: " & CStr(x))
End Sub
End Class
Class class2
Sub DelegateTest()
Dim c1 As Class1
Dim msd As MySubDelegate
c1 = New Class1()
' Create an instance of the delegate.
msd = AddressOf c1.Sub1
msd.Invoke(10) ' Call the method.
End Sub
End Class
[解决办法]
你定义的委托可以定义参数的啊,Delegate 定义个参数,Tsub1 方法定义个参数就可以传了