Home > Software design >  Using a delegate for thread start inside another Sub
Using a delegate for thread start inside another Sub

Time:12-21

What I've got is something like this:

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

I am getting an error indicating that somethingNew is being seen as variable name and not a method name and is thus unacceptable by AddressOf. ( I know that somethingNew is a variable, just one that happens to contain a pointer to a method).

Is there a way to do this? I need to leave it inside of GiantLegacySub because of the shear volume of variables in its scope.

CodePudding user response:

Based on Craig's guidance, this was the answer:

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
  • Related