Я пишу программу в Delphi 2010. Часть программы имеет дело с File Hashing, которая с большими файлами занимает довольно много времени. Проблема заключается в том, что в то время, когда программа отключает хэширование файла, который хочет пользователь, программа в настоящее время зависает в течение 60 секунд в файле 100 МБ. Я хочу, чтобы пользователь мог использовать другие функции программы (Memopad, String Hashing), пока происходит хеширование файлов.Управление возвратом пользователю во время работы - Delphi
Текущая структура программы выглядит следующим образом: -
- Пользователь Инициирует хеширование (может быть сделано путем изменения выбранного файла или алгоритм хэширования в выбранном)
- вызывает функцию CheckHashBox
- CheckHashBox проверяет хеширование алгоритм выбран
- Если выбраны алгоритмы хэширования вызовов, соответствующие функции
- Функция hashing alogrithms буферизует файл, проходит через хэширование algo затем выводит окончательный вывод на StringGrid
- Повторите шаги 3 - 5 для всех 12 алгоритмов хэширования.
Как я уже говорил с большими файлами, это может занять до 60 секунд, в частности, Whirlpool, SHA-512. Другая странная вещь заключается в том, что, хотя в коде он должен печатать выходные данные после возврата для конкретного алгоритма хеширования, прежде чем переходить к проверке следующего, результаты не отображаются, пока все не завершится.
Я не размещал никакого действительного кода, так как все это охватывает довольно большой объем кода, но я могу опубликовать любой раздел кода, который вам нужен.
Спасибо Дункан, я проверю это. – jskrwyk