Exemplo n.º 1
0
        private void UpdateProgress()
        {
            _timer.Elapsed -= OnTimer;

            _progressBar.Maximum = _totalSize;
            _progressBar.Value   = _processedSize;

            double   percents = (_totalSize == 0) ? 0.0 : 100 * _processedSize / (double)_totalSize;
            TimeSpan elapsed  = DateTime.Now - _begin;
            double   speed    = _processedSize / Math.Max(elapsed.TotalSeconds, 1);

            if (speed < 1)
            {
                speed = 1;
            }
            TimeSpan left = TimeSpan.FromSeconds((_totalSize - _processedSize) / speed);

            _progressText.Text  = String.Format("{0:F2}%", percents);
            _beginTimeText.Text = String.Format("{1}: {0:mm\\:ss}", elapsed, Lang.MeasurementsElapsed);
            _speedText.Text     = FormatHelper.BytesFormat(speed) + " / " + Lang.MeasurementsSecondAbbr;
            _endTimeText.Text   = String.Format("{1}: {0:mm\\:ss}", left, Lang.MeasurementsRemaining);

            _timer.Elapsed += OnTimer;
        }