Try this (Form1 and Form2 must be present in the project):
vb Code:
Imports System.ComponentModel
Public Class Form1
Private bw As New BackgroundWorker With {
.WorkerReportsProgress = True,
.WorkerSupportsCancellation = True}
Private frmProgress As New Form2
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
AddHandler bw.DoWork, AddressOf RunLongProcess
AddHandler bw.ProgressChanged, AddressOf ProgressChanged
bw.RunWorkerAsync()
End Sub
Private Sub RunLongProcess(ByVal sender As System.Object, ByVal e As DoWorkEventArgs)
Dim progress As Integer
For progress = 0 To 100
System.Threading.Thread.Sleep(1000)
bw.ReportProgress(progress)
Next
End Sub
Private Sub ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs)
If Not frmProgress.Visible Then frmProgress.Show()
' Change to Progress bar or whatever - just a demonstration
frmProgress.Text = e.ProgressPercentage.ToString()
End Sub
End Class