【发布时间】:2019-02-11 10:36:31
【问题描述】:
我正在将字符串值从 List 添加到列表框。 我想在 ReportProgress 方法中计算进度百分比。请帮我计算进度百分比。我在 ReportProgress 方法的第一个参数中写了 0。我想用进度百分比替换那个 0。
这是我的代码。
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
List<string> result = new List<string>();
var found = obj.getFiles();
foreach (var item in found)
{
if (item.Contains("SFTP:") || item.Contains("ERROR:"))
{
result.Add(item);
(sender as BackgroundWorker).ReportProgress(0, item);
}
else
(sender as BackgroundWorker).ReportProgress(0);
System.Threading.Thread.Sleep(1000);
}
e.Result = result;
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
if (e.UserState != null)
listBox1.Items.Add(e.UserState);
progressBar2.Value = e.ProgressPercentage;
}
【问题讨论】:
-
Systems.Collections.Generics.List
-
假设我有 100 件商品。我目前在第 7 项。我取得了哪些进展?您如何将其应用到您的代码中?
-
@PoojaJamdade "ReportProgress(0, item);"似乎您不了解这些参数的用途。如果您有 x 个项目并且您通过它们计算出一个百分比,那么它的简单数学运算。
-
参数是int percentProgress和object userState。我想计算进度百分比
-
@pooh 乘以 100 之前除法。
标签: c# winforms progress-bar backgroundworker