我有几个正在处理的大文件,并且我使用backgroundWorker1.ReportProgress(percent)在每个文件完成时报告进度。但现在我想要有第二个进度条来报告每个单独文件的处理进度(并为下一个文件重置)。我可以使用我正在读取的当前字节位置,并除以文件的总大小来获得以百分比表示的进度。但是如果只有一个ProgressChanged事件,我该如何将这个值传递给progressBar2呢?
发布于 2011-10-22 14:23:53
一种方法是使用BackgroundWorker.ReportProgress(Int32, Object)并在userState参数中传递您想要的任何内容。
另一种是简单地知道,当你在第一个进度条上达到100%时,你需要增加另一个条。
发布于 2011-10-22 14:24:52
ReportProgress有一个overload,它允许你传递额外的对象。你可以用它来返回你需要的任何额外的状态。
public void ReportProgress(
int percentProgress,
Object userState
)然后,您可以从ProgressChangedEventArgs.UserState读取状态。
https://stackoverflow.com/questions/7857786
复制相似问题