VB.net останавливает фонового работника

Я хочу создать кнопку, которая могла бы остановить моего фонового работника и завершить весь процесс, над которым он работает.

Вот мой пример кода:

       Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

            Try
                If BackgroundWorker1.IsBusy  True Then
                    BackgroundWorker1.RunWorkerAsync()
                End If
            Catch ex As Exception
            End Try

        End Sub

        Private Sub BackgroundWorker1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork

            Dim counter As Integer = 1

            Do

            'updated code with stop function----------------
            BackgroundWorker1.WorkerSupportsCancellation = True
            If BackgroundWorker1.CancellationPending Then
                e.Cancel = True
                ProgressBar1.Value = 0
                Exit Do
            End If
            'updated code with stop function----------------

            ListBox1.Items.Add(counter)

            ProgressBar1.Value = ((counter - 1) / limit) * 100
            counter = counter + 1
            Loop While(counter 

Ответы на вопрос(2)

Ваш ответ на вопрос