2010-04-18 13 views
46

क्या आपके पास UI थ्रेड के Dispatcher प्राप्त करने का कोई तरीका है जब आपके पास किसी भी UI तत्व का कोई संदर्भ नहीं है?मैं यूआई थ्रेड डिस्पैचर कैसे प्राप्त करूं?

+0

कुछ और विवरण ... आपके पास GUI ऑब्जेक्ट्स या यूआई थ्रेड का कोई संदर्भ नहीं है? प्रेषक होने के बाद आप क्या करना चाहते हैं? – Gishu

+0

@ गिशू, और मेरे जैसे सात साल बाद आने वाले लोगों के लिए, आपको इसकी आवश्यकता है जब आपके पास सब कुछ है। यूआई थ्रेड पर एक 'ऑब्जर्जेबल कोलेक्शन' सुनाई जा रही है (और यदि आप इसे यूआई थ्रेड से संशोधित करने का प्रयास करते हैं तो पुनर्वितरण की जांच में असफल हो जाएंगे) फिर भी किसी भी प्रेषक का पर्दाफाश नहीं करता है ... इस मामले में आपको यूआई ' डिस्पैचर' लेकिन आपके पास कोई यूआई तत्व नहीं है –

उत्तर

86

आप स्थिर आवेदन उदाहरण से यूआई डिस्पैचर हड़पने कर सकते हैं: Application.Current.Dispatcher

आप अशक्त के लिए Application.Current जाँच करने के लिए पहले, के रूप में यह एक बंद अनुक्रम के दौरान साफ ​​किया जा सकता कर सकते हैं।

+12

दुर्भाग्य से यह WinForms में भी शून्य है, उन दुर्भाग्यपूर्ण आत्माओं के लिए जो WinForms एप्लिकेशन के अंदर WPF तत्व होस्ट कर रहे हैं। –

+3

@AndrewGarrison, आप 'new System.Windows.Aplication() 'कहकर मैन्युअल रूप से स्थिर' एप्लिकेशन 'ऑब्जेक्ट बना सकते हैं। – Taedrin

संबंधित मुद्दे