示例#1
0
        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;
                }
            }));
        }
示例#2
0
 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;
     }
     ));
 }