2009-10-24 18 views

उत्तर

37

BackgroundWorker वर्ग मूल रूप से Thread निर्माण और निगरानी प्रक्रिया एब्सट्रैक्ट, और आप आपरेशन (ProgressChanged) की प्रगति की रिपोर्ट और जब आपका आपरेशन समाप्त हो गया है का निर्धारण (RunWorkerCompleted) करने के लिए एक घटना पर ही आधारित एपीआई देता है ...

इसके लिए सबसे आम उपयोगों में से एक है Windows GUI उत्तरदायी रखना, जबकि लंबे समय तक चलने वाली प्रक्रिया पृष्ठभूमि में निष्पादित होती है। तो मूल रूप से, यह सिर्फ सिस्टम के लिए एक रैपर है। थ्रेडिंग। पृष्ठभूमि को थोड़ा सा सरल बनाने के लिए डिज़ाइन किया गया है (जैसा कि नाम का तात्पर्य है)

+0

तो मूल रूप से, यह सिस्टम के लिए सिर्फ एक रैपर है। थ्रेडिंग। थ्रेडिंग को थोड़ा आसान बनाने के लिए डिज़ाइन किया गया है? – Icemanind

+1

http://stackoverflow.com/questions/1506838/backgroundworker-vs-background-thread/1507337#1507337 –

+0

@MattDavis ग्रेट लिंक, यदि संभवतः कोई विवरण या लिंक से अधिक कुछ था तो यह अधिक अर्थपूर्ण होगा। – Randolph

18

BackgroundWorker वास्तव में प्रतिनिधियों के माध्यम से एसिंक्रोनस थ्रेड इनवोकेशन के लिए एक रैपर है - परावर्तक का उपयोग करके इसे देख सकते हैं तदनुसार प्रारंभ/अंत चालान विधियों को कॉल करता है। यह System.Threading.Thread से अलग है जिसमें यह एक नया धागा शुरू करने के विरोध में थ्रेडपूल का उपयोग करता है।

पृष्ठभूमि कार्यकर्ता का उपयोग करने का मुख्य कारण यह है कि यह विंडोज़ फॉर्म अनुप्रयोगों के साथ अच्छी तरह से प्लग करता है।

+4

+1 इस तथ्य को सटीक रूप से कैप्चर करने के लिए कि पृष्ठभूमि कर्मचारी थ्रेड पूल का उपयोग करते हैं। इसके अलावा लोगों के लिए यह उपयोगी है कि अगर आप एसटीए कॉम ऑब्जेक्ट को कॉल करने की ज़रूरत है तो पृष्ठभूमिवर्कर एक अच्छा विकल्प नहीं है क्योंकि अपार्टमेंट सेट नहीं किया जा सकता है –

संबंधित मुद्दे