due to cleaning up my code a tried to update the progressbar from another class which is called by a backgroundworker. How can I accomplish this goal?
I tried:
Public Class Form1
'backgroundworker and progressbar are located in Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
BackgroundWorker1.WorkerReportsProgress = True
BackgroundWorker1.WorkerSupportsCancellation = True
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim asyncwork As New calc
asyncwork.calculate()
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub
End Class
Public Class calc
Public Sub calculate()
Form1.BackgroundWorker1.ReportProgress(100)
End Sub
End Class
formerly my code was working, when all tasks are done in the same class:
Public Class Form1
'backgroundworker and progressbar are located in Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
BackgroundWorker1.WorkerReportsProgress = True
BackgroundWorker1.WorkerSupportsCancellation = True
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
calclocal()
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
calclocal()
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub
Sub calclocal()
BackgroundWorker1.ReportProgress(100)
End Sub
End Class
Does anyone have an idea?
Thanks