L'accesso ai controlli di Windows Forms non è thread safe.
Operazioni effettuate da due thread diversi da quello in cui il controllo e' stato creato, possono porlo in uno stato non coerente.
Quello che puoi fare nel tuo codice è porre la seguente dichiarazione nel codice del form
codice:
Delegate Sub SetPBCallback()
e modificare il codice del thread che accede al controllo così
codice:
Private Sub AdvanceProgress()
If Me.ProgressBar1.InvokeRequired Then
Dim d As New SetPBCallback(AddressOf AdvanceProgress)
Me.Invoke(d, New Object() {})
Else
Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
End If
End Sub