Vb.net 进度条的总和值不正确
我有一个简单的进度条代码Vb.net 进度条的总和值不正确,vb.net,progress-bar,Vb.net,Progress Bar,我有一个简单的进度条代码 Dim delimiter As Decimal = 0.0 If ListOfUsers.Any() Then delimiter = 100.0 / ListOfUsers.Count End If For Each link As String In ListOfUsers counter += 1 Dim pValue As Decimal = ProgressBa
Dim delimiter As Decimal = 0.0
If ListOfUsers.Any() Then
delimiter = 100.0 / ListOfUsers.Count
End If
For Each link As String In ListOfUsers
counter += 1
Dim pValue As Decimal = ProgressBar1.Value
pValue = pValue + delimiter
ProgressBar1.BeginInvoke(Sub() ProgressBar1.Value = pValue)
Next
End If
由于某种原因,它的总和不准确。假设我们有listofuser.Count=3
delimeter将获得正确的值100/3=33.33
。现在当它求和时,得到的是66.33
,而不是66.66
我试着用Double,但结果是一样的。这可能很简单,我这里缺少的是什么?进度条的值是一个整数,例如,您将该值设置为33.33,但当您从进度条中读取该值时,它返回33,因此通过将33与33.33相加,您将得到66.33 查看进度条类,Value属性是int
公共属性值为整数进度条值是一个整数,例如,您将该值设置为33.33,但当您从进度条中读回该值时,它返回33,因此通过将33与33.33相加,您将得到66.33 查看进度条类,Value属性是int 公共属性值为整数尝试将“Dim pValue As Decimal=ProgressBar1.Value”放在foreach循环之外 就在循环前面。尝试将“Dim pValue As Decimal=ProgressBar1.Value”放在foreach循环之外
就在循环之前。除非通过
调用,否则不能将Dim pValue作为Decimal=ProgressBar1.Value调用。
调用(假设此代码在后台线程中运行)。除非通过调用Dim pValue作为Decimal=ProgressBar1.Value
(假设此代码正在后台线程中运行)。