Example #1
0
        private void CompressWorker_ProgressChanged(object sender, ProgressChangedEventArgs args)
        {
            bool someTimePassed = false;

            if (DateTime.UtcNow > lastProgressTime.AddMilliseconds(500))
            {
                lastProgressTime = DateTime.UtcNow;
                someTimePassed   = true;
            }

            progressBar1.Value = args.ProgressPercentage;
            if (args.ProgressPercentage == 0)
            {
                startTime = DateTime.UtcNow;
                RemainingTimeLabel.Text      = Tx.T("msg.starting");
                RemainingTimeLabel.ForeColor = SystemColors.ControlText;
            }
            else if (args.ProgressPercentage >= 20)               // Permille
            {
                if (someTimePassed)
                {
                    double elapsedSeconds = (DateTime.UtcNow - startTime).TotalSeconds;
                    double totalSeconds   = elapsedSeconds * 1000 / args.ProgressPercentage;                     // Permille
                    if (totalSeconds >= 0 && totalSeconds < int.MaxValue)
                    {
                        TimeSpan remainingTime = TimeSpan.FromSeconds((int)Math.Ceiling(totalSeconds - elapsedSeconds));
                        RemainingTimeLabel.Text      = Tx.TimeSpanRaw(remainingTime, false);
                        RemainingTimeLabel.ForeColor = SystemColors.ControlText;
                    }
                }
            }

            ProgressInfo pi = args.UserState as ProgressInfo;

            if (pi != null)
            {
                SharedData.Instance.ArchiveFileSize = pi.CompressedSize;
                if (someTimePassed)
                {
                    CompressedSizeLabel.Text = Tx.DataSize(pi.CompressedSize);
                }
            }
        }
 private void TransportWorker_ProgressChanged(object sender, ProgressChangedEventArgs args)
 {
     progressBar1.Value = args.ProgressPercentage;               // Permille
     if (args.ProgressPercentage == 0)
     {
         startTime = DateTime.UtcNow;
     }
     else if (args.ProgressPercentage >= 20)               // Permille
     {
         if (DateTime.UtcNow > lastProgressTime.AddMilliseconds(500))
         {
             lastProgressTime = DateTime.UtcNow;
             double elapsedSeconds = (DateTime.UtcNow - startTime).TotalSeconds;
             double totalSeconds   = elapsedSeconds * 1000 / args.ProgressPercentage;
             if (totalSeconds >= 0 && totalSeconds < int.MaxValue)
             {
                 TimeSpan remainingTime = TimeSpan.FromSeconds((int)Math.Ceiling(totalSeconds - elapsedSeconds));
                 RemainingTimeLabel.Text = Tx.TimeSpanRaw(remainingTime, false);
             }
         }
     }
 }
 public TimeEntry(TimeSpan span)
 {
     Text     = Tx.TimeSpanRaw(span, false);
     TimeSpan = span;
 }