दिलचस्प पोस्ट
एक संवाद के रूप में एंड्रॉइड गतिविधि Virtualenv के साथ विभिन्न पायथन संस्करण का उपयोग करें एएसपी.नेट वेब एपीआई – पुट और डेलेटे वर्ब्स को अनुमति नहीं है – IIS 8 मौजूदा ऑब्जेक्ट इंस्टेंस के लिए एक विधि जोड़ना "पूर्णांक आकार = 10" क्या एक निरंतर अभिव्यक्ति उत्पन्न होती है? एडब्ल्यूटी (कैलकुलेटर होमवर्क) में एक बटन स्रोत कैसे खोजना आपको C ++ में एक स्ट्रैट बनाम क्लास का उपयोग कब करना चाहिए? मैं किसी iPhone एप्लिकेशन से मेल कैसे भेज सकता हूं डेल्फी क्या "कीवर्ड" के साथ एक खराब अभ्यास है? स्ट्रिंग में स्ट्रिंग की घटना को कैसे गणना करना है? UITableView सेल में संपादन पर कस्टम हटाएं बटन `WinMain @ 16 'के लिए अपरिभाषित संदर्भ पिछली गिट का उपयोग करने वाली शाखा से शाखा "Android.view.विंडो प्रबंधक $ BadTokenException:" buider.show पर विंडो जोड़ने में असमर्थ () jqgrid + ईएफ + एमवीसी: एक्सेल में कैसे निर्यात करें? आप किस विधि का सुझाव देते हैं?

डिस्पैचर। वर्तमान डिस्पैचर बनाम एप्लिकेशन। वर्तमान। डिस्पैचर

Dispatcher.CurrentDispatcher ( System.Windows.Threading . System.Windows.Threading ) और Application.Current.Dispatcher बीच अंतर क्या हैं। System.Windows.Threading ( System.Windows )?

मेरा आंत मुझे बताता है कि Application.Current.Dispatcher । वर्तमान। Dispatcher.CurrentDispatcher कभी भी नहीं बदलेगा और वर्तमान आवेदन में सभी थ्रेड्स के लिए वैश्विक होगा, जबकि Dispatcher.CurrentDispatcher । वर्तमान Dispatcher.CurrentDispatcher उस धागे के आधार पर Dispatcher का नया उदाहरण बना सकता है जिससे इसे बुलाया गया था।

क्या वो सही है?

यदि ऐसा है, तो Dispatcher.CurrentDispatcher का उद्देश्य है। मुख्यतः बहु-थ्रेडेड UI के लिए मुख्य Dispatcher.CurrentDispatcher ?

वेब के समाधान से एकत्रित समाधान "डिस्पैचर। वर्तमान डिस्पैचर बनाम एप्लिकेशन। वर्तमान। डिस्पैचर"

मेरा आंत मुझे बताता है कि आवेदन। वर्तमान। डिस्पैचर कभी भी नहीं बदलेगा और वर्तमान आवेदन में सभी थ्रेड्स के लिए वैश्विक होगा, जबकि डिस्पैचर। वर्तमान डिस्पैचर उस धागे के आधार पर डिस्पैचर का नया उदाहरण बना सकता है जिससे इसे बुलाया गया था।

वह सही है।

इसके अतिरिक्त, Dispatcher.CurrentDispatcher तक पहुंचने में कोई बात नहीं है। गैर-यूआई थ्रेड से वर्तमान डिस्पार्चर। यह तब तक कुछ भी नहीं करेगा जब तक आप Dispatcher.Run नहीं कॉल करते हैं। Dispatcher.Run , और एक असीम संदेश लूप में जा रहा है कि आप वर्क थ्रेड के अंदर से क्या करना चाहते हैं।

इसलिए:

  • सबसे सामान्य परिदृश्य में , जहां आपके ऐप में केवल एक यूआई धागा होता है, Application.Current.Dispatcher Dispatcher.CurrentDispatcher और Dispatcher.CurrentDispatcher । यूआरआइ थ्रेड के भीतर से वर्तमान डिस्पाचचर उसी उदाहरण को वापस करेगा। जो आप उपयोग करते हैं वह वरीयता की बात है

  • यदि आपके ऐप में एक से अधिक यूआई थ्रेड है तो प्रत्येक DispatcherObject स्थायी रूप से यूआई धागे के DispatcherObject से जुड़ा हो जाएगा जो इसे निर्माण पर बनाया गया था। इस मामले में, Application.Current.Dispatcher आपके आवेदन के साथ पैदा हुए धागा के डिस्पैबर को संदर्भित करेगा; आप अपने अन्य यूआई थ्रेड्स के स्वामित्व वाले नियंत्रण में संदेश पोस्ट करने के लिए इसका उपयोग करने में सक्षम नहीं होंगे।

अगर सरल शब्द में कहा जाए तो…

Dispatcher.CurrentDispatcher वर्तमान धागा के लिए प्रेषक हो जाता है। इसलिए, अगर आप एक पृष्ठभूमि प्रक्रिया से UI थ्रेड के डिस्पैचर की तलाश कर रहे हैं, तो इसका उपयोग न करें।

Application.Current.Dispatcher डिस्पैचर हमेशा आपको यूआई धागे के डिस्पैचर देगा, क्योंकि ये एक धागा है जो एकमात्र आवेदन उदाहरण को छूता है।

मेरा आंत मुझे बताता है कि आवेदन। वर्तमान। डिस्पैचर कभी भी नहीं बदलेगा और वर्तमान आवेदन में सभी थ्रेड्स के लिए वैश्विक होगा, जबकि डिस्पैचर। वर्तमान डिस्पैचर उस धागे के आधार पर डिस्पैचर का नया उदाहरण बना सकता है जिससे इसे बुलाया गया था।

यह सही है, अनुप्रयोग। वर्तमान। डिस्पाचर एक मौजूदा आवृत्ति के प्रेषक होने के लिए निर्माण पर सौंपा गया है जो आवेदन की एक आवृत्ति संपत्ति है। और Dispatcher.CurrentDispatcher के दस्तावेज के रूप में। वर्तमान Dispatcher.CurrentDispatcher बताते हैं:

धागे के वर्तमान में चलने वाले डिस्पैचर को प्राप्त करता है और यदि कोई पहले से थ्रेड से जुड़ा नहीं है तो एक नया डिस्पैचर बनाता है।


यदि ऐसा है, तो डिस्पैचर का उद्देश्य है। मुख्यतः बहु-थ्रेडेड UI के लिए मुख्य डिस्पैचर?

संभवतः, मुझे किसी पृष्ठभूमि थ्रेड के प्रेषक को प्राप्त करने में कोई फायदा नहीं हुआ है क्योंकि आपके पास आमतौर पर उनके पास कोई UI-elments नहीं है जिसके लिए आप ऑपरेशन भेजना चाहते हैं।