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; }