मुझे यकीन है कि यह आप के लिए बाहर काम करेंगे नहीं हूँ (मैं इसे नहीं होगा यह नहीं कह रहा हूँ, सिर्फ इतना है कि मुझे यकीन है कि नहीं कर रहा हूँ)।
संक्षिप्त उत्तर हाँ है, कोड असीमित है। लेकिन BackgroundWorker
से किसी भी प्रकार का रिटर्न वैल्यू प्राप्त करने के लिए, आपको इसकी RunWorkerCompleted
ईवेंट को संभालने की आवश्यकता है।
बुनियादी तंत्र को अपने RunWorkerCompleted
घटना में e.Result
संपत्ति से प्राप्त कर (देखने के लिए अगर एक अपवाद DoWork
में फेंक दिया गया था पहले e.Error
जाँच करने के लिए सुनिश्चित करने के अपने DoWork
घटना में e.Result
संपत्ति में कुछ मूल्य डाल करने के लिए, और उसके बाद है)।
कारण मुझे यकीन नहीं है कि यह काम करेगा या नहीं, यह है कि आप using
कीवर्ड का उपयोग कर रहे हैं, जो सुनिश्चित करता है कि BackgroundWorker
कोड ब्लॉक के अंत में निपटाया गया है। चूंकि यह अपने काम को असीमित रूप से कर रहा है, यह आपको RunWorkerCompleted
को संभालने का मौका मिलने से रोक सकता है या नहीं। मुझे सच में यकीन नहीं है - शायद किसी और को पता है?
स्रोत
2010-08-24 23:05:07