मुझे लगता है कि यह पूरी तरह से ठीक है विभिन्न धागे पर एकाधिक संदेश लूप बनाते हैं। तीसरी पार्टी यूआई टूलकिट से निपटने के लिए एकमात्र चीज देखना है, वे कभी-कभी हैंडल को स्थैतिक (थ्रेडस्टैटिक के बजाए) सदस्यों के रूप में स्टोर करते हैं और यदि आपके आवेदन में एकाधिक UI थ्रेड हैं, तो इसमें समस्याएं होंगी (मेरे मामले में, मैंने पाया कि मेनू/टूलबार कीबोर्ड त्वरक ठीक से काम नहीं करते थे)।
ऐसा करने के बड़े कारणों में से एक यह है कि यदि आपके पास मॉडेल संवाद हैं जो विभिन्न मॉडेलस संवादों पर दिखाई देते हैं। यदि आप सब कुछ एक ही संदेश लूप पर डालते हैं, तो यदि मॉडल मॉडल में से एक में एक मोडल डायलॉग होता है, तो जब तक आप मोडल डायलॉग को खारिज नहीं करते हैं, तब तक पूरा एप्लिकेशन (सभी विंडोज़) अवरुद्ध हो जाता है।
और, जैसे केविन कह रहे थे, क्रॉस-विंडो (क्रॉस-थ्रेड) कॉल के लिए देखें। आप अन्य UI थ्रेड्स पर प्रतिनिधि कॉल पोस्ट करने के लिए Control.BeginInvoke या Control.Invoke का उपयोग कर सकते हैं।
दूसरी बात यह है कि आप अपनी प्रक्रिया से कैसे बाहर निकलेंगे। आपको संदेश लूप का ट्रैक रखने की अधिक संभावना होगी ताकि जब आप सब कुछ बंद करना चाहते हैं तो आप उन्हें रोक सकते हैं। यदि आप परवाह नहीं है और बस सभी खिड़कियां बंद होने पर प्रक्रिया समाप्त होने की इच्छा है, तो आप भी ऐसा कर सकते हैं।
स्रोत
2008-10-30 14:56:57
आप प्रति दस्तावेज़ एक उदाहरण क्यों नहीं चलाते हैं? –
हमारा स्टार्टअप समय बहुत महंगा है और हम आईपीसी का उपयोग किए बिना दस्तावेज़ों के बीच संवाद करने में सक्षम होना चाहते हैं। वास्तव में – fuzzyman