如何显示包含后台辅助角色实际进度百分比的进度条?



我有一个执行 2 个函数的后台工作者,我不知道是否有办法测量完成该过程需要多少。

例如:

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
table1 = function1;
table2 = function2;
}

我找到了这个

int total = 100; //some number (this is your variable to change)!!
for (int i = 0; i <= total; i++) //some number (total)
{
System.Threading.Thread.Sleep(100);                
backgroundWorker1.ReportProgress(i);
}

这不代表进度,我看到进度条填充并再次重新启动,工作在第二次或第三次"运行"的某个地方结束

我希望进度条实际显示以%为单位完成多少 这可能吗,或者我必须通过试验并运行来猜测?

不幸的是,没有办法以自动方式执行此操作(据我所知(。 作为程序员,您定义了进度条中表示的进度。

通常的示例是迭代大型数组的后台进程。例如,当后台进程每 1/10 完成数组时,进度条会以 10% 的部分更新。或者以 5% 的比例表示数组的每 1/20,依此类推。有关这方面的示例,您可以参考@SergeyShevchenko在评论中提供的链接。

至少(以一种不太具有代表性的方式(你可以规定第一个函数占整个工作的大约 50%(20?80%?(,并在第一个函数完成后相应地更新进度条,然后再调用第二个函数。

另一种方法是更改两个函数(如果可能且合理(,以便它们能够报告其进度,然后您将能够将报告的进度转换为进度栏状态。

最新更新