2016-05-23 9 views
-1

Wie startet man eine Funktion, die als Variable in einem Thread in .NET 3.5 übergeben wird?.net Variable Funktion als Thread starten

Public Shared Sub starteAlsThread2(addr As Threading.ParameterizedThreadStart) 
    Dim pts As New Threading.ParameterizedThreadStart(addr) 
    lgv_worker = New Threading.Thread(pts) 
    lgv_worker.Start(Argumente) 
End Sub 

Auf diese Weise gibt einen Fehler der Kompilierung ist: "System.Threading.ParameterizedThreadStart" erfordert einen AddressOf oder Lambda-Ausdruck

+0

Was ist 'Argumente'? – Jodrell

+1

'pts' ergibt keinen Sinn, verwenden Sie einfach' lgv_worker = New Threading.Thread (addr) '. –

+0

@Jodrell: Sorry, ein Objekt als Parameter für die aufgerufene Funktion –

Antwort

0

Passing Variable auf einen neuen Thread Ausdrücke Lambda mit leicht getan werden kann:

Private Sub Test() 
     Dim thrd = New Thread(Sub() TestSub("bllablla")) 
     thrd.Start() 
    End Sub 

    Private Sub TestSub(kot As String) 
     'Do stuff here 
    End Sub 
+0

"TestSub" sollte der variable Teil sein. –

+0

Kein TestSub ist eine Codeuntermenge mit Eingabevariablen, die Sie zur Ausführung in einem neuen Thread aufrufen können. –