Originariamente inviato da cassano
in altre parole creo una istanza di thread che opera sulla sub da me creata dothetask vero ???
quindi da quel punto in poi il codice eseguira in parallelo due istruzioni quella principale e quella presente in DoTheTask ???
Il metodo costruttore della classe Thread accetta come parametro un delegato, che è l'oggetto in grado di mantenere un riferimento ad un metodo corrispondente ad un certo prototipo (numero e tipo di parametri e valore di ritorno).

Quando crei un'istanza di Thread, passi come parametro il "delegato" al metodo che intendi eseguire in modo asincrono alla chiamata del metodo Start dell'istanza di Thread.
codice:
Imports System
Imports System.Threading

Module SimpleThreading
  Class ConsoleApp
    Private Shared Sub ThreadedMethod()
      Console.WriteLine("Stato thread: " + Thread.CurrentThread.ThreadState.ToString())
    End Sub

    Public Shared Sub Main()
      Dim startMethod As ThreadStart = New ThreadStart(AddressOf ThreadedMethod)
      Dim myThread As New Thread(startMethod)
      Console.WriteLine("Prima di Start(): " + myThread.ThreadState.ToString())
      myThread.Start()
      Console.WriteLine("Dopo Start(): " + myThread.ThreadState.ToString())
    End Sub
  End Class
End Module
Se esegui questo programma più volte, vedrai che otterrai - talvolta - un output diverso. Siccome il thread primario e quello secondario (creato da te) eseguono contemporaneamente, quello che viene eseguito prima o dopo non è prevedibile.

Ciao!