Hteo bih da uz pomoc Backgroundworker-a (bgw) uradim sledece:
klikom na dugme pokrecem konekciju na neku bazu podataka i istovremeno otvaram novu formu (pomocu bgw-a) koja ispisuje poruku da se vrsi konekcija i pokazuje progres bar...
Pogledao sam malo ove teme:
https://www.elitesecurity.org/t278600-Kako-napraviti-please-wait
https://elitesecurity.org/t237778-progress-bar-otvaranje-formi
ali imam problem kako da zaustavim bgw kada se uspostavi konekcija ili kada istekne timeout.
Evo koda:
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzvestajZaDan.Click
BackgroundWorker1.RunWorkerAsync()
...
Try
conn.Open()
BackgroundWorker1.CancelAsync()
Catch
BackgroundWorker1.CancelAsync()
End Try
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
If (BackgroundWorker1.CancellationPending) Then
e.Cancel = True
Exit Sub
Else
wait.ShowDialog()
End If
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
wait.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzvestajZaDan.Click
BackgroundWorker1.RunWorkerAsync()
...
Try
conn.Open()
BackgroundWorker1.CancelAsync()
Catch
BackgroundWorker1.CancelAsync()
End Try
End Sub
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
If (BackgroundWorker1.CancellationPending) Then
e.Cancel = True
Exit Sub
Else
wait.ShowDialog()
End If
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
wait.Close()
End Sub
WorkerSupportsCancellation je postavljeno na True.
Hvala!