如何在VB.NET BackgroundWorker中使用百分比代替ProgressBar控件

时间:2018-10-09 08:16:16

标签: vb.net backgroundworker

我只想在执行ProgressChanged方法时报告DoWork

我的代码是这样的:

Private Sub CloudDataWorker_DoWork(sender As Object, e As DoWorkEventArgs) Handles CloudDataWorker.DoWork
        GlobalVartions.PushtoCloud()
        CloudDataWorker.ReportProgress(100, "")
End Sub

到目前为止,我所做的是不起作用。

Private Sub CloudDataWorker_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles CloudDataWorker.ProgressChanged
        uploadStat.Text = "Uploading" & "%"
End Sub

我想使用Progressbar作为指标,而不是使用percentage %

我该如何实现?谢谢。

2 个答案:

答案 0 :(得分:1)

在您的ProgressChanged方法中,“ e”参数保存e.ProgressPercentage

中的百分比值

所以您只需要像这样加载它:

uploadStat.Text = "Uploading" & e.ProgressPercentage & "%"

答案 1 :(得分:1)

经过多次尝试,我已使用此代码完成了以下操作

这是我的DoWork方法

Private Sub CloudDataWorker_DoWork(sender As Object, e As DoWorkEventArgs) Handles CloudDataWorker.DoWork

        Dim i As Integer = 1
        Do While (i <= 10)
            If (CloudDataWorker.CancellationPending = True) Then
                e.Cancel = True
                Exit Do
            Else
                GlobalVartions.PushtoCloud()
                CloudDataWorker.ReportProgress((i * 2))
            End If

            i = (i + 1)
        Loop

End Sub

还有我的ProgressChanged方法

Private Sub CloudDataWorker_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles CloudDataWorker.ProgressChanged
        uploadStat.Text = (e.ProgressPercentage.ToString + "%")
    End Sub

现在效果很好。 。