如何在后台工作人员工作活动中按百分比报告进度


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 progress值始终为0。在这种情况下,filesl中有将近40000个文件。

这是完全正确的。由于文件的数量,变量将返回"0";0";(0%(,直到它达到至少400个文件,然后计算将返回"0";1〃;(1%(。如果你更精确地计算(不转换为INT(,你会看到百分比是分数,0.005%,0.0075%…

最新更新