Я создаю небольшое приложение, которое вычисляет хеш из любого файла для алгоритма хеширования нескольких типов.
Для простоты я остановлюсь только на одном алгоритме, интенсивно использующем процессор, и даже если размер файла составляет около 15 МБ, вычисление хэша занимает около получаса.
Я выполняю расчеты с помощью BackgroundWorker (я не уверен, что это правильный подход для расчетов, но я просто экспериментирую).
Теперь я хочу иметь индикатор выполнения, который будет отображать процессы хэширования, но я не знаю, как получить максимальное требуемое значение и куда поместить метод DoStep.
Есть идеи?
Мой код:
private void btnBrowse_Click(object sender, EventArgs e)
{
ofdBrowse.Filter = "All Files|*.*";
ofdBrowse.Title = "Open file.";
if (ofdBrowse.ShowDialog() == DialogResult.OK)
{
txtPath.Text = ofdBrowse.FileName;
bwWorker.RunWorkerAsync();
}
}
private void bwWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
t5 = hash.HashSHA512(txtPath.Text);
}
void bwWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
txtSHA512.Text = t5;
}