在另一个 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