Visual Basic.NET - Background Worker + Delegados + Clases

 
Vista:
sin imagen de perfil

Background Worker + Delegados + Clases

Publicado por Fernando (1 intervención) el 10/10/2020 13:38:48
Buenas. quisiera consultar sobre Background Worker + Delegados + Clases

Tengo lo siguiente

Class1

for i=1...
next

end class



Form1

do work (de un backgroundworker)

end form

quisiera saber como hago para pasarle la variable i del bucle para que me actualice la barra de progreso en el form 1 mediante delegados

GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Background Worker + Delegados + Clases

Publicado por Medyu (2 intervenciones) el 21/10/2020 20:31:15
Deberia ser asi:

en fu form1
1
2
3
4
5
Private Sub BtnSincroniza_Click(sender As Object, e As EventArgs) Handles BtnSincroniza.Click
        ProgressBar1.Visible = True
        Dim Ejecuta As New ClasedetuBackgroundWorker
        Ejecuta.TuWorker.RunWorkerAsync() 'ejecutas el backgroundworker
End Sub

despues la clase que tiene el BackgroundWorker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Public Class ClasedetuBackgroundWorker
        Public WithEvents TuWorker As New BackgroundWorker
        Dim i as integer=0
 
Private Sub TuWorker_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles TuWorker.DoWork
        'El DoWork, aqui es donde haces todo lo que necesites que se haga en segundo plano.
         'por ejemplo:
         Form1.ProgressBar1.Minimum = 0
         Form1.ProgressBar1.Maximum = 100
         for i =1 blablabla...
                TuWorker.ReportProgress(i) 'con esto envias el progreso a la progressbar en la propiedad del ProgressChanged
                i++
         next
End Sub
 
Private Sub TuWorker_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs) Handles TuWorker.ProgressChanged
        'Aqui en la propiedad del ProgressChanged es donde ves por ejemplo la progressbar mientras se ejecuta el DoWork, ejemplo:
            Form1.ProgressBar1.Value = e.ProgressPercentage
End Sub
 
Private Sub TuWorker_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs) Handles TuWorker.RunWorkerCompleted
        'Con RunWorkerCompleted manejas cuando termina de ejecutarse el DoWork
End Sub
 
End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar