Trigger Backgroundworker Completed event

后端 未结 1 603
攒了一身酷
攒了一身酷 2021-01-23 15:10

I am trying to display the progress bar(marque) in a separate form (progressForm) while i do some calculation in background.

I know the typical way of doing it is to in

相关标签:
1条回答
  • 2021-01-23 15:31

    Once your backgroundworker's progress reaches 100% the RunWorkerCompleted event for the backgroundworker will fire.

    Edit - Added code sample

        Dim WithEvents bgWorker As New BackgroundWorker With { _
        .WorkerReportsProgress = True, _
        .WorkerSupportsCancellation = True}
    
        Private Sub bgWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgWorker.DoWork
            For i As Integer = 0 To 100
                'Threw in the thread.sleep to illustrate what's going on.  Otherwise, it happens too fast.
                Threading.Thread.Sleep(250)
                bgWorker.ReportProgress(i)
            Next
        End Sub
    
        Private Sub bgWorker_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bgWorker.ProgressChanged
            If e.ProgressPercentage Mod 10 = 0 Then
                MsgBox(e.ProgressPercentage.ToString)
            End If
        End Sub
    
        Private Sub bgWorker_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgWorker.RunWorkerCompleted
            MsgBox("Done")
        End Sub
    
    0 讨论(0)
提交回复
热议问题