![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Оптимизация одновременной загрузки на несколько серверов в DelphiDelphi , Интернет и Сети , FTPЗаголовок: Вопрос: У меня есть проект загрузчика FTP, который использует форму, созданную во время выполнения, для запуска загрузки на несколько серверов FTP (с помощью Indy). Моя проблема заключается в следующем (и я действительно нуждаюсь в вашей помощи). На форму я поставил компонент IdFTP + кнопку загрузки + общедоступные свойства FTPSrvAdrs и SrcFile + TrgFolder. Когда я нажимаю кнопку "Загрузить", процесс загрузки FTP не запускается на всех 4 экземплярах формы, а я должен ждать, пока каждая загрузка будет завершена, прежде чем запустится следующая. Я хочу, чтобы все процессы загрузки запускались одновременно, когда я нажимаю кнопку "Загрузить" на каждой форме. Подтвержденный ответ: Вам нужно либо изменить библиотеку Indy на неблокирующую в фоновом режиме (событийную или порт завершения), либо сделать свою программу многопоточной (с своим набором проблем, таких как нажатие пользователем кнопки 20 раз или закрытие формы во время процесса или даже закрытие программы во время работы). Ниже приведен пример кода, который демонстрирует, как можно использовать библиотеку AsyncCalls для запуска загрузки в фоновом режиме:
В этом примере, когда пользователь нажимает кнопку "Загрузить", процедура загрузки запускается в фоновом режиме с помощью функции AsyncProcedure. После завершения загрузки форма автоматически закрывается. Альтернативный ответ: Вы также можете использовать компонент TIdSync для синхронизации доступа к ресурсам и TIdNotify для уведомления о завершении загрузки. Подробнее об этом можно прочитать в статье на StackOverflow: https://stackoverflow.com/questions/8318438/indy-ftp-failing-to-upload-miserably Пользователь разрабатывает загрузчик FTP в Delphi, который должен одновременно загружать файлы на несколько серверов, но вместо этого каждая загрузка запускается по очереди, что замедляет процесс. Пользователь ищет решение, чтобы запустить все з Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |