मैं एक आवेदन जो सर्वर के लिए फ़ाइल की सामग्री अपलोड करता है पर काम कर रहा हूँ के लिए इंतज़ार कर।एक संकेत
सर्वर पर फ़ाइल मैं उपयोग कर रहा हूँ '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' के बंद फोन मैं 'FileTransfer' वस्तु को नष्ट की नाशक में तो प्रपत्र बंद कर देता है, तो।
लेकिन यहां अपलोड करें() फ़ंक्शन अभी तक पूरा नहीं हुआ है, इसलिए यह क्रैश हो जाएगा।
कृपया मुझे करने में मदद: कैसे अपलोड जब तक 'स्टॉप()' समारोह में प्रतीक्षा करने के लिए() फ़ंक्शन
हाँ, मैं जैसे ही हम खत्म स्लॉट के रूप में घटना पाश बाहर निकलने के लिए कोड जोड़ा। लेकिन समस्या तब होती है जब फ़ाइल कनेक्शन को बंद कर देती है और ऑब्जेक्ट को हटा देती है। लेकिन अपलोड फ़ंक्शन अभी तक पूरा नहीं हुआ है। इस समय यह दुर्घटनाग्रस्त हो जाएगा। –