0

我正在尝试估计 MSI 安装还剩多少秒。虽然我知道这不准确,但我的计算似乎比应有的要差 - 我该如何改进?一个问题是,我经常发现进度从 ~0% 飞速增长到 ~95%,在很长一段时间内评估为还剩 0 秒。

我从 MSI 获得进度事件,每次更新进度时,我都会执行以下操作:

    private int CalculateSecondsLeft(DateTime start, int overallProgress)
    {
        lock (this)
        {         
            if (overallProgress == 0)
            {
                return 0;
            }

            var timeSpent = DateTime.Now - start;
            double cal1 = timeSpent.TotalSeconds / overallProgress;
            double cal2 = cal1 * (100 - overallProgress);
            return (int)cal2;
        }
    }
4

0 回答 0