[ mish_ns @ 05.05.2011. 13:34 ] @
Pozdrav svima!

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



WorkerSupportsCancellation je postavljeno na True.

Hvala!
[ mish_ns @ 05.05.2011. 15:41 ] @
Sad vidim da u principu ovaj
wait.ShowDialog() zarobi nastavak app...

Jel ima neki nacin da se ovo realizuje?
[ mish_ns @ 05.05.2011. 19:14 ] @
Uradio sam sa thredovima...mada ih nikad nisam koristio do sad.
Napravio sam novi thred koji kreira formu i prikazuje je.
dok se vrsi konekcija na bazu thread je startovan, a kada se konektuje pozivam thread.Abort().
ne znam da li je to dobar pristup ali radi. :)
[ Boris B. @ 06.05.2011. 08:26 ] @
A zasto nisi jednostavno zvao wait.Show umesto wait.ShowDialog, kad si vec imao sve napravljeno sa backgroundworkerom?
[ mish_ns @ 06.05.2011. 16:40 ] @
Isto se desavalo...
[ ravni @ 07.05.2011. 14:21 ] @
u sustini si izokrenuo kako treba da se koristi backgroundworker. u DoWork si trebao da otvaras konekciju, a u RunWorkerCompleted da sakrijes wait formu