private void OnFileHashingProgress(object sender, FileHashingProgressArgs e) { double fileProg = e.ProcessedSize / e.TotalSize * 100; double totalProg = (e.ProcessedSize + ppSize) / totalQueueSize * 100; TimeSpan totalTimeElapsed = DateTime.Now - m_hashingStartTime; TimeSpan remainingSpan = TimeSpan.FromSeconds(Math.Ceiling(totalQueueSize * (totalTimeElapsed.TotalSeconds / (ppSize + e.ProcessedSize)) - totalTimeElapsed.TotalSeconds)); Dispatcher.BeginInvoke(new Action(delegate { if (isHashing) { timeElapsedTextBlock.Text = String.Format("Elapsed: {0}", totalTimeElapsed.ToHMS()); timeRemainingTextBlock.Text = String.Format("ETA: {0}", remainingSpan.ToHMS()); totalBytesTextBlock.Text = String.Format("Bytes: {0} / {1}", (e.ProcessedSize + ppSize).ToFormattedBytes(ExtensionMethods.BYTE_UNIT.GB), totalQueueSize.ToFormattedBytes(ExtensionMethods.BYTE_UNIT.GB)); fileProgressBar.Value = fileProg; totalProgressBar.Value = totalProg; } })); }
private void OnFileHashingProgress(object sender, FileHashingProgressArgs e) { long onePercent = (e.TotalSize / 100); int percentDone = (int)(e.ProcessedSize / onePercent); this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(delegate() { GeneralProgress.Value = percentDone; } )); }