在另一个 Sub 中使用委托启动线程
Using a delegate for thread start inside another Sub
我得到的是这样的:
Private Sub GiantLegacySub()
... lots of variables and legacy code...
Dim somethingNew = New Func(of String, Boolean)(
Function(stringy as String) As Boolean
... new code that uses the legacy variables ...
End Function)
Dim t = New Thread(AddressOf somethingNew)
End Sub
我收到一条错误消息,指出 somethingNew
被视为变量名称而不是方法名称,因此 AddressOf
无法接受。 (我知道 somethingNew
是一个变量,恰好包含指向方法的指针)。
有办法吗?我需要将它留在 GiantLegacySub
内,因为它的范围内变量的剪切量很大。
根据克雷格的指导,答案如下:
Private Sub GiantLegacySub()
... lots of variables and legacy code...
Dim somethingNew = Sub(stringy as String)
... new code that uses the legacy variables ...
End Sub
Dim t = New Thread(somethingNew)
t.Start(someStringForStringy)
End Sub
我得到的是这样的:
Private Sub GiantLegacySub()
... lots of variables and legacy code...
Dim somethingNew = New Func(of String, Boolean)(
Function(stringy as String) As Boolean
... new code that uses the legacy variables ...
End Function)
Dim t = New Thread(AddressOf somethingNew)
End Sub
我收到一条错误消息,指出 somethingNew
被视为变量名称而不是方法名称,因此 AddressOf
无法接受。 (我知道 somethingNew
是一个变量,恰好包含指向方法的指针)。
有办法吗?我需要将它留在 GiantLegacySub
内,因为它的范围内变量的剪切量很大。
根据克雷格的指导,答案如下:
Private Sub GiantLegacySub()
... lots of variables and legacy code...
Dim somethingNew = Sub(stringy as String)
... new code that uses the legacy variables ...
End Sub
Dim t = New Thread(somethingNew)
t.Start(someStringForStringy)
End Sub