no es largo, p.ejemplo:
Código:
Dim comprueba as boolean = False
Dim miHilo as Theard
Private sub Form1(..)
miHilo = new Theard(HacerAlgo)
miHilo.Start
Timer1.Start()
end sub
Private Sub HacerAlgo
EsperarLeer 'Puerto, socket, lo que sea
If Leer
comprueba = true
End IF
End Sub
Private Sub Timer1_Tick(...)
If Comprueba = true
miHilo.Abort()
Timer1.Stop()
Dim miForm2 as new Form2
miForm2.ShowDialog()
End if
End Sub
Date cuenta que en el timer_tick paro el timer para que no se siga ejecutando. El resto es adaptarlo a tus necesidades.