首页 > 解决方案 > 如何在 VB.NET BackgroundWorker 中使用百分比而不是 ProgressBar 控件

问题描述

我只想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我不想使用 a ,而是使用 apercentage %作为指标。

我怎样才能做到这一点?谢谢。

标签: vb.netbackgroundworker

解决方案


经过太多尝试,我用这段代码完成了以下操作

这是我的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

现在效果很好。.


推荐阅读