Progressbar在预期时没有达到100%

时间:2014-01-17 21:56:42

标签: c# progress-bar backgroundworker stopwatch

我正在使用后台线程来运行我在标签上使用的秒表并增加进度条。计时器似乎准确地保持时间,但进度条没有达到我预期的100%。

我试图同时使用时间35秒,并且在接近36秒时达到100%,有人可以告诉我为什么吗?

进度条的最大值设置为350,值设置为0.

private int currentScore = 0;

Stopwatch swTimer = new Stopwatch();

private void backgroundWorkerTimer_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    TimeSpan elapsedTime = swTimer.Elapsed;
    labelTime.Text = String.Format("{0}.{1:%f}", elapsedTime.Seconds, elapsedTime);
    progressBarTimer.Increment(1);
}

private void backgroundWorkerTimer_DoWork(object sender, DoWorkEventArgs e)
{
    while (true)
    {
        backgroundWorkerTimer.ReportProgress(0);
        System.Threading.Thread.Sleep(100);
    }            
}

1 个答案:

答案 0 :(得分:0)

这似乎已经干涸所以我会关闭它。我最终制作了progressBar max 345并且似乎在35秒左右结束了,我只是用它来表示剩下的时间。

有兴趣知道为什么350作为最大值并不准确,尽管labelTime正在跟上。