का उपयोग कर फ़ाइल अपलोड के दौरान अपलोड प्रगति प्राप्त करना मेरे पास एक ऐप है जो वेब क्लाइंट का उपयोग कर सर्वर पर फ़ाइलों को अपलोड करता है। फ़ाइल अपलोड प्रगति पर है, जबकि मैं एक प्रगति पट्टी प्रदर्शित करना चाहता हूं। मैं इसे प्राप्त करने के बारे में कैसे जाउंगा?Webclient.Uploadfile
13
A
उत्तर
18
WebClient.UploadFileAsync आपको ऐसा करने की अनुमति देगा।
WebClient webClient = new WebClient();
webClient.UploadFileAsync(address, fileName);
webClient.UploadProgressChanged += WebClientUploadProgressChanged;
...
void WebClientUploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
Console.WriteLine("Upload {0}% complete. ", e.ProgressPercentage);
}
ध्यान दें कि धागा अपलोड पर अब ब्लॉक नहीं है, इसलिए मैं का उपयोग कर की सलाह देते हैं:
webClient.UploadFileCompleted += WebClientUploadCompleted;
...
void WebClientUploadCompleted(object sender, UploadFileCompletedEventArgs e)
{
// The upload is finished, clean up
}
2
अपना ईवेंट हैंडलर WebClient.UploadProgressChanged में जोड़ें और WebClient.UploadFileAsync पर कॉल करें।
उदाहरण के लिए WebClient.UploadProgressChanged दस्तावेज़ीकरण देखें।
धन्यवाद। मैं multithreading के साथ काम कर रहा हूँ, फ़ाइल अपलोड पहले से ही एक अलग धागे पर चल रहा है। तो क्या मुझे केवल अपलोडफाइल विधि या अपलोडफाइलएसिंक विधि का उपयोग करना चाहिए? –
आपको अभी भी अपलोड करने की आवश्यकता होगी FileAsync मुझे डर है, थ्रेड अपलोडफाइल पर कॉल पर अवरुद्ध होगा ताकि उन घटनाओं को कभी भी बुलाया न जाए। जब आप अपलोड शुरू करते हैं तो आप बूल फ्लैग सेट करके अपनी खुद की अवरोध को फिर से बना सकते हैं, इसे अपलोड अपूर्ण में रीसेट कर सकते हैं, फिर थ्रेड स्लीप को साफ़ होने तक थ्रेड। –
नोट: '' अपलोड प्रोग्रेस चेंज किया गया '' '' '' '_DDDADync''' विधि के साथ अच्छी तरह से काम नहीं करता है –