I wouldn't use abort. This illustrates how I would do it.

Code:
Public Class Form1

    Dim myThreads As New List(Of Threading.Thread)
    Dim isRun As Boolean = False

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        'start threads
        isRun = True
        For i As Integer = 1 To 4
            Dim t As New Threading.Thread(AddressOf check)
            t.IsBackground = True
            t.Name = i.ToString
            myThreads.Add(t)
            t.Start()
        Next
        Debug.WriteLine("Started")
    End Sub

    Private Sub check()
        Do While isRun
            'simulate check
            Threading.Thread.Sleep(100)
        Loop
    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        'stop threads
        isRun = False 'tell threads to stop
        For Each t As Threading.Thread In myThreads
            t.Join()
        Next
        Debug.WriteLine("Ended")
    End Sub
End Class