c# - Simple way to add foreach loop around WebClient -


मैंने WebClient कार्य के चारों ओर एक foreach पाश जोड़ने का प्रयास किया है , लेकिन यह काम करने के लिए प्रतीत नहीं होता मैंने कुछ शोध किए हैं और पाया कि सिस्टम को एक सेकंड के लिए सोने के भेजने की तरह इसे ठीक करने के लिए कुछ साफ गंदे तरीके हैं, मैं एक अधिक संरचित समाधान चाहूंगा अगर कोई समाधान नहीं है तो मैं W8 फोन के साथ इंटरनेट से एक आरएसएस फ़ीड कैसे पढ़ सकता हूं।

  foreach (स्ट्रिंग rssFeed in lstRSSFeeds) {// हमारे वेब डाउनलोडर WebClient downloader = new WebClient () ; // हमारे वेब पते को डाउनलोड करने के लिए, उरीकिंड को देखें। एबसोल्यूट उरी उड़ी = नया उरी (आरएसएसएफिड, उरीकिंड। एएसएसओल्यूट); // हमें पूरी तरह से डाउनलोड करने के लिए फ़ाइल की प्रतीक्षा करने की आवश्यकता है, इसलिए DownloadComplete Event Downloader को हुक कर दें। Download DownloadStringCompleted + = New DownloadStringCompletedEventHandler (FileDownloadComplete); // डाउनलोड डाउनलोडर प्रारंभ करें। डाउनलोडलोडिंगएसिंक (यूरी); }  

यदि आप एकाधिक फ़ाइलों को डाउनलोड करना चाहते हैं, तो कुछ प्रकार के क्रियान्वयन के लिए सबसे अच्छा होगा डाउनलोड प्रबंधक का यह कठिन लग सकता है, लेकिन मैं आपको आश्वासन देता हूं कि यह नहीं है।

उदाहरण के लिए:

हम सूची का <कोड बनाकर एक डाउनलोड प्रबंधक को लागू कर सकते हैं > KeyValuePair । कीवालपेअर में एक कुंजी होगा, जो मूल रूप से वेबसाइट का यूआरएल और वेबसाइट के HTML (या डाउनलोड की गई सामग्री) का मान है।

< P> हम फाइलों को डाउनलोड करने के लिए आपके foreach स्कीम का उपयोग करेंगे।


  सार्वजनिक आंशिक वर्ग मेनपेज: फोन एप्लिकेशन पृष्ठ { // हमारे सरल डाउनलोड प्रबंधक की सूची & lt; KeyValuePair & lt; स्ट्रिंग, स्ट्रिंग & gt; & gt; DownloadManager = नई सूची & lt; keyValuePair & lt; स्ट्रिंग, स्ट्रिंग & gt; & gt; (); // कन्स्ट्रक्टर पब्लिक मेनपेज () {इनिशियलाइजमेंट (); // सूची & lt; string & gt; डाउनलोड करने के लिए वेबसाइटों की हमारी सूची बनाएं LstRSSFeeds = नई सूची & lt; स्ट्रिंग & gt; (); // 3 वेब साइटों lstRSSFeeds.Add ("http://www.google.com") जोड़ देता है; lstRSSFeeds.Add ( "http://www.msn.com"); lstRSSFeeds.Add ( "http://www.chubosaurus.com"); // सूची में प्रत्येक वेबसाइट के लिए, अपने डेटा को डाउनलोड करें (स्ट्रिंग आरएसएसएफआईडी में lstRSSFeeds) {// हमारे वेब डाउनलोडर WebClient downloader = new WebClient (); // हमारे वेब पते को डाउनलोड करने के लिए, उरीकिंड को देखें। एबसोल्यूट उरी यूरी = नया उरी (आरएसएसएफिड, उरीकिंड। एएसएसओल्यूट); डाउनलोडर.बेस एड्डर = यूरी.ToString (); // हमें पूरी तरह से डाउनलोड करने के लिए फ़ाइल की प्रतीक्षा करने की आवश्यकता है, इसलिए DownloadComplete Event Downloader को हुक कर दें। Download DownloadStringCompleted + = New DownloadStringCompletedEventHandler (FileDownloadComplete); // डाउनलोड डाउनलोडर प्रारंभ करें। डाउनलोडलोडिंगएसिंक (यूरी); }} // यह घटना तब पूरी होगी जब डाउनलोड सफल हो जाए / हम DownloadManager void FileDownloadComplete (ऑब्जेक्ट प्रेषक, DownloadStringCompletedEventArgs e) {// त्रुटि की जांच करने के लिए सभी डेटा को बचाएंगे यदि (! ई। रद्द और amp; amp; त्रुटि == नल) {स्ट्रिंग uri = ((वेबमेल) प्रेषक) .बेसअॅडरेशन; // आधार पता (यूआरएल) स्ट्रिंग html = e.Result; की कुंजी सेट करें; // save the html // keyvaluepair (यह सभी html को बचाने और url द्वारा अनुक्रमित किया जाएगा) KeyValuePair & lt; स्ट्रिंग, स्ट्रिंग & gt; Site_data = नया कीवालपेअर & lt; स्ट्रिंग, स्ट्रिंग & gt; (यूरी, एचटीएमएल); // हमारे डाउनलोड प्रबंधक DownloadManager.Add (site_data) के लिए KeyValuePair जोड़ें; }}}  

अब एक ब्रेक बिंदु सेट करें और DownloadManager को देखिए क्योंकि यह डेटा के साथ भरता है। यहां DownloadManager का एक स्क्रीनशॉट है, ध्यान दें कि यह कैसे व्यवस्थित है। वेबसाइट / डेटा संयोजन आपके लिए समझना बहुत आसान होना चाहिए।

यहां छवि विवरण दर्ज करें


Comments

Popular posts from this blog

mysql - How to enter php data into a html multiple select box -

java - Can't add JTree to JPanel of a JInternalFrame -

c++ - Cassandra datastax cpp driver - avoiding unnecessary copies -