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