Aqui sigo, con TcpClient y TcpListener

Haber, tengo una Hebra, en la cual he metido un método para que esté escuchando continuamente haber si se conecta alguien.
Bien, hasta aqui perfect. Pero a la hora de cerrar la aplicación, ZAS, el formulario se oculta, pero la aplicación sigue cargada en memoria.
Pensé en hacer en el evento Closing del formulario lo siguiente:
Private Sub Form1_Closing(ByVal ...) Handles MyBase.Closing
If Hebra.ThreadState = ThreadState.Running Then
msgbox("Mato Hebra")
Hebra.Abort()
msgbox(Hebra.isAlive)
End If
Application.Exit()
End Sub
Para que asi, si la hebra está en funcionamiento, que la aborte. Entrar entra en la condicional IF, pero no me elimina la Hebra. En el Segudno msgbox me devuelve true.
Me imagino que es por eso por lo que no me cierra la aplicacion. Entonces, ¿Alguien sabe por que no consigo matar la Hebra?
Bueno, haber si alguien puede hecharme un cable.
Saludos.