c#更新进度栏基于任务的数量

本文关键字:任务 于任务 更新 | 更新日期: 2023-09-27 18:08:58

我的应用程序有一个小问题。我有一个ProgressBar,我正在使用c#中的backGroundWorker更新,更新ProgressBar不是问题,因为我只是调用reportProgress方法。

然而,假设我有一个listView框中的项目,我想报告每个项目已处理后的进度,我可以得到listView中的项目总数与listView1.Items.Count();但我不知道如何在报告中解决这个问题……

的例子:

如果我有7个项目在我的listView,每个项目可以采取不同的时间取决于listView文件的大小(这是一个媒体转换项目转换音频文件),所以我不能只是调用线程睡眠函数的progressBar。我需要知道用于使progressBar准确更新的代码,或者我可以在

这样的循环中运行的代码

foreach (ListViewItem item in ConversionQueue.Items.Count()){}

感谢任何帮助…

谢谢

c#更新进度栏基于任务的数量

我不完全确定我是否正确理解你的问题,但据我所知,这可能是一个解决你的问题:

首先获得要完成的总工作量(总文件大小)。这是进度条的最大值。为每个项目分配它所代表的工作量(单个文件的大小)。当任务完成时,将已完成的工作量添加到进度条值中,然后就可以开始了。

将最大值设置为列表视图中的项数。在每个项目完成后,将进度条的值添加1。您的进度条完美地表示了已完成/待完成的项目数量。

设置进度条。Maximum = listview.items.count

ProgressChanged事件增加1