Delphi Zip-файл в потоке (используя TZipMaster) - PullRequest
1 голос
/ 28 июля 2010

Я хочу сжать файл в потоке, используя компонент TZipMaster.Проблема в том, что когда я запускаю программу из IDE, я получаю сообщение об ошибке (из windows)

"программа больше не отвечает. -> Поиск решения в Интернете -> Закрыть программу"

(или что-то в этом роде, я не знаю точного сообщения на английском языке .. "

Однако файлы ZIP созданы успешно. Последний вывод отладчика из Delphi 2009::

модуль выгрузки: DelZIp179.dll

Когда я запускаю .exe напрямую, кажется, что он работает нормально, и я не получаю эту ошибку. Однако я 'не уверен, смогу ли я просто игнорировать эту ошибку или лучше ее исправить?

Спасибо за ваши ответы!

1 Ответ

2 голосов
/ 28 июля 2010

Вы получаете эту ошибку, потому что ваше приложение выполняет большую обработку (архивирование) в главном потоке и не обрабатывает сообщения Windows.

Лучше исправить это - либо вы должны обрабатывать сообщения Windows во время архивирования (если это поддерживает TZipMaster), либо перемещать архивирование в фоновый поток.

Дополнительная информация: Я проверил источник TZipMaster, и есть событие OnTick, которое периодически вызывается.

Написать обработчик события OnTick и вызвать Application.ProcessMessages изнутри. Это должно устранить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...