我正在处理一个应用程序,它将文件的内容上传到服务器。等待信号
将文件上传到服务器我使用'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个窗口。第一个选择文件,第二个显示进度。
当用户在第一个窗口中单击上传按钮时,将显示第二个窗口,然后创建FileTransfer对象并开始上传。
在上传该文件,如果用户关闭窗体,然后在我称之为“文件传输”停止后,我删除“文件传输”对象的窗口的析构函数。
但是这里的上传()函数还没有完成,所以会崩溃。
请帮我: 如何“停止()”功能等到上传()函数完成
是的,我加入了代码,只要我们得到完成插槽退出事件循环。但是如果用户停止连接并删除对象,则下载文件时会出现问题。但上传功能尚未完成。在这个时候它会崩溃。 – 2010-06-16 11:09:22