मेरे पास पृष्ठभूमि थ्रेड कार्यान्वयन की पसंद के बारे में एक शैलीगत प्रश्न है जो मुझे विंडोज़ फॉर्म ऐप पर उपयोग करना चाहिए। वर्तमान में मेरे पास एक BackgroundWorker
फार्म है जिसमें एक अनंत (while(true))
लूप है। इस लूप में मैं WaitHandle.WaitAny
थ्रेड को सूंघने के लिए उपयोग करता हूं जब तक कि कुछ ब्याज नहीं होता है। इवेंट हैंडल में से एक मैं प्रतीक्षा करता हूं एक " StopThread
" घटना है ताकि मैं लूप से बाहर निकल जाऊं। इस घटना का संकेत तब दिया जाता है जब मेरे ओवरराइड से Form.Dispose()
।
मैं कहीं पढ़ता हूं जो BackgroundWorker
वास्तव में उन कार्यों के लिए अभिप्रेत है जो आप यूआई के साथ टाई नहीं करना चाहते हैं और एक सीमित अंत है - जैसे कि एक फ़ाइल डाउनलोड करना, या वस्तुओं के अनुक्रम को संसाधित करना। इस मामले में "अंत" अज्ञात है और केवल तभी जब खिड़की बंद हो। इसलिए मेरे BackgroundWorker
लिए इस उद्देश्य के लिए पृष्ठभूमि थ्रेड का उपयोग करना अधिक उपयुक्त होगा ?