Я работаю над приложением, которое загружает содержимое файла на сервер.
Чтобы загрузить файл на сервер, я использую класс QNetworkAccessManager. Поскольку он работает как асинхронный путь, я изменил его, чтобы работать синхронно, используя QEventLoop.
Class FileTransfer
{
Public :
QNetworkAccessManager mNetworkManager;
Void Upload(QNetworkRequest request, QIODevice *data)
{
responce = mNetworkManager.put(request, data);
EventLoop.exec();
ReadResponce(responce);
}
Void Stop()
{
responce ->close();
}
}
В моем примере приложения у меня есть 2 окна. 1-й для выбора файлов и 2-го для отображения прогресса.
Когда пользователь нажимает кнопку загрузки в первом окне, отображается второе окно, а затем я создаю объект FileTransfer и начинаю загрузку.
При загрузке файла, если пользователь закрывает форму, а затем в деструкторе окна, я вызываю остановку "FileTransfer" после этого, я удаляю объект FileTransfer.
Но здесь функция Upload() еще не завершена, поэтому она выйдет из строя.
Пожалуйста, помогите мне: Как подождать в функции "stop()" до тех пор, пока функция Upload() не будет завершена