2011-01-11 2 views
2

Я пишу программу в Delphi 2010. Часть программы имеет дело с File Hashing, которая с большими файлами занимает довольно много времени. Проблема заключается в том, что в то время, когда программа отключает хэширование файла, который хочет пользователь, программа в настоящее время зависает в течение 60 секунд в файле 100 МБ. Я хочу, чтобы пользователь мог использовать другие функции программы (Memopad, String Hashing), пока происходит хеширование файлов.Управление возвратом пользователю во время работы - Delphi

Текущая структура программы выглядит следующим образом: -

  1. Пользователь Инициирует хеширование (может быть сделано путем изменения выбранного файла или алгоритм хэширования в выбранном)
  2. вызывает функцию CheckHashBox
  3. CheckHashBox проверяет хеширование алгоритм выбран
  4. Если выбраны алгоритмы хэширования вызовов, соответствующие функции
  5. Функция hashing alogrithms буферизует файл, проходит через хэширование algo затем выводит окончательный вывод на StringGrid
  6. Повторите шаги 3 - 5 для всех 12 алгоритмов хэширования.

Как я уже говорил с большими файлами, это может занять до 60 секунд, в частности, Whirlpool, SHA-512. Другая странная вещь заключается в том, что, хотя в коде он должен печатать выходные данные после возврата для конкретного алгоритма хеширования, прежде чем переходить к проверке следующего, результаты не отображаются, пока все не завершится.

Я не размещал никакого действительного кода, так как все это охватывает довольно большой объем кода, но я могу опубликовать любой раздел кода, который вам нужен.

ответ

Смежные вопросы