Imports System.ComponentModel

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
End Sub

Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim kekka As Integer = 1 ' 計算結果
Dim progress As Integer = 0 ' 進行状況
For i As Integer = 0 To 9
System.Threading.Thread.Sleep(1 * 1000) ' 1秒停止
kekka = kekka * 2
progress = (i + 1) * 10
BackgroundWorker1.ReportProgress(progress)
Next
e.Result = kekka
End Sub

Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
TextBox1.Text = e.ProgressPercentage.ToString ' 進行状況の表示
End Sub

Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
TextBox2.Text = e.Result.ToString ' 計算結果の表示
End Sub
End Class