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

多线程中传递参数的有关问题! 请高手帮忙!

2012-02-22 
多线程中传递参数的问题!! 请高手帮忙!!在线程中,我为了能改变窗体上控件的属性.我用了下面的方法DimsAsNe

多线程中传递参数的问题!! 请高手帮忙!!
在线程中,我为了能改变窗体上控件的属性.我用了下面的方法

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 方法定义个参数就可以传了

热点排行