根据潜在错误重新计算进度百分比

时间:2016-11-29 09:45:04

标签: c# wpf visual-studio progress-bar

根据三项操作,我有进步。 第一个操作需要10秒,第二个操作需要15秒,第三个操作需要15秒。 可以使用以下公式计算进度百分比:

elapsedTime/totalTime * 100%

其中totalTime是10 + 15 + 15 = 40秒。

现在假设每个操作都有一个在每个操作结束时计算的错误(例如,第一个操作需要3秒钟,因此完成它的时间是13秒)。 重新计算进度百分比的新方法是什么,以便取得进展 总是前进(它应该缓慢但不会倒退)?

我的进度最大值设为100。

2 个答案:

答案 0 :(得分:1)

totalTime增加错误已添加到整体进度的金额

totalTime + error_time

要使进度始终向前,您应该将错误显示在错误发生时的值,并且只在new_calculated百分比超过记住的值时才进行更新。

您正在操作2:

的图像
totalTime  = 40;
elapsedTime = 25;

old_progress = 25 / 40 * 100 [62.5%]

然后发生错误:

errorTime = 3;
totalTime  = 40 + errorTime  ;
elapsedTime = 25;

new_progress = 25 / 43 * 100 [58.1%]

现在您等到new_progress值超过old_progess值,然后您可以再次更新。这样它永远不会倒退

答案 1 :(得分:1)

如果你将error_Time添加到双方怎么办?我的意思是这样的:

(op1+ error_Time_op1 + op2 +op3 )/(totalTime + error_Time_op1 ) * 100%