BackgroundWorker vb
场景:vb.net BackgroundWorker组件使用有关问题
vb.net BackgroundWorker组件使用问题
下面代码中Me.ProgressBar1.Value = e.ProgressPercentage不同步完成DoWork事件进度。
奇怪的是当DoWork事件没有完成的情况下进度条很快进度到早就完成结束显示100%呢
------解决方案--------------------
BackgroundWorker.ReportProgress 方法的作用是引发 ProgressChanged 事件,你的ReportProgress(100)只是告诉BackgroundWorker在运行完之后引发ProgressChanged 事件而已,并不能让msgbox等到运行结束
直接把msgbox放进RunWorkerCompleted,或者在ProgressChanged 事件发生时msgbox应该就行了吧
------解决方案--------------------
楼主的代码没有实质的处理内容,只是学习的目的么?
vb.net BackgroundWorker组件使用问题
下面代码中Me.ProgressBar1.Value = e.ProgressPercentage不同步完成DoWork事件进度。
奇怪的是当DoWork事件没有完成的情况下进度条很快进度到早就完成结束显示100%呢
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Me.BackgroundWorker1.RunWorkerAsync()
Me.BackgroundWorker1.WorkerReportsProgress = True
Me.BackgroundWorker1.ReportProgress(100)
MsgBox("以启动运行程序。。。")
End Sub
Private Sub backgroundWorker1_RunWorkerCompleted( _
ByVal sender As Object, _
ByVal e As EventArgs) _
Handles BackgroundWorker1.RunWorkerCompleted
'Thread.Sleep(10000)
Me.TextBox1.Text = "ok"
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Thread.Sleep(1000000)
End Sub
Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
End Sub
End Class
------解决方案--------------------
BackgroundWorker.ReportProgress 方法的作用是引发 ProgressChanged 事件,你的ReportProgress(100)只是告诉BackgroundWorker在运行完之后引发ProgressChanged 事件而已,并不能让msgbox等到运行结束
直接把msgbox放进RunWorkerCompleted,或者在ProgressChanged 事件发生时msgbox应该就行了吧
------解决方案--------------------
楼主的代码没有实质的处理内容,只是学习的目的么?