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