![](/img/trans.png)
[英]What should I report to report progress in the backgroundworker DoWork event?
[英]How to report progress by percentages in backgroundworker dowork event?
private void Bgw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
var filesl = GetFiles(@"D:\", "*.*").ToList();
for(int i = 0; i < filesl.Count; i++)
{
FileInfo info = new FileInfo(filesl[i]);
if (File.Exists(info.FullName))
{
dic.Add(filesl[i], info.Length);
}
int progress = (int)(((float)(i + 1) / filesl.Count) * 100);
worker.ReportProgress(progress, filesl[i]);
Thread.Sleep(100);
}
}
它在worker.ReportProgress中报告列表中的项目很好,但变量int进度值始终为0。在这种情况下,filesl中有近40000个文件。
这是完全正确的。 由于文件的数量,该变量将返回“0”(0%),直到达到至少 400 个文件,然后计算将返回“1”(1%)。 如果您更精确地进行此计算(不转换为 INT),您将看到百分比是小数、0.005%、0.0075%...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.