हाल ही में, मुझे इस स्थिति का सामना करना पड़ा जहां मैं एक और थ्रेड (मुख्य/यूआई थ्रेड नहीं) पर एक फॉर्म प्रदर्शित करना चाहता था। मैंने थ्रेडपूल थ्रेड का इस्तेमाल किया। फॉर्म ने एक आरसीडब्ल्यू (एक COM घटक के लिए) की मेजबानी की। फॉर्म को इंस्टेंट करने से मुझे अपवाद दिया गया कि धागा एसटीए होना चाहिए। मैंने अपार्टमेंट राज्य को एसटीए के रूप में स्थापित करने की कोशिश की। लेकिन, यह भी काम नहीं किया। आखिरकार मैंने धागे को स्पष्ट रूप से तैयार किया और यह काम किया (मैंने शोडियलॉग का इस्तेमाल किया और मुझे एक मीज पंप बनाने की आवश्यकता नहीं है)।हम थ्रेडपूल धागे की अपार्टमेंट स्थिति क्यों नहीं बदल सकते हैं और शोडियलॉग का उपयोग होने पर हमें संदेशपंप की आवश्यकता क्यों नहीं होती है?
संपादित करें:
- मुझे पता है कि धागे ThreadPool एमटीए हैं। लेकिन, इसे एसटीए पर क्यों सेट नहीं किया जा सकता है? बस इसके बारे में उत्सुक है।
- एक और सवाल है कि बस मेरे सिर में पॉप: क्यों हम एक
संदेश पंप जब Showdialog() (
प्रदर्शन एक फार्म के लिए)
उत्तर के लिए धन्यवाद। क्या आप एक लिंक पर इंगित कर सकते हैं, जो कहता है कि ShowDialog() अपना संदेश लूप शुरू करता है। –
http://www.red-gate.com/products/reflector। सिफारिश की। –
धन्यवाद। आवेदन। RunDialog (यह) चाल करता है। –