我正在處理一個應用程序,它將文件的內容上傳到服務器。等待信號
將文件上傳到服務器我使用'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