विनफॉर्म में, सभी नियंत्रणों में InvokeRequired
प्रॉपर्टी होती है, जो मुझे कॉल करने के लिए सही होती है। [प्रारंभ करें] इसे संशोधित करने के लिए नियंत्रण पर शामिल हों।Dispatcher का सही उपयोग (या उपयोग नहीं)।)
WPF में, वहाँ DispatcherObject.CheckAccess()
और Dispatcher.CheckAccess()
में एक जाहिरा तौर पर इसी तरह के निर्माण है, लेकिन मैं EditorBrowsable(EditorBrowsableState.Never)
विशेषता के आधार पर भयभीत हूँ। जब मैं इस तरह के संपादक ब्राउज़िंग को अक्षम करता हूं, तो इसका मतलब यह है कि "आपको ऐसा नहीं करना चाहिए। नहीं, वास्तव में। यदि यह आवश्यक है तो अपनी तत्काल समस्या का समाधान करें, आपने अपनी अत्यधिक समस्या के समाधान को गलत तरीके से डिज़ाइन किया है।" दूसरी ओर, मुझे मिला एकमात्र विकल्प (और, वास्तव में, मेरा मूल समाधान) Thread.CurrentThread.ManagedThreadId == 1
है। (हालांकि यह भयानक है। और इसके सामान्य मामले में काम नहीं करता। मुझे पता है। यह मेरी सीमित उपयोग के लिए काम करता है।)
MSDNdocumentation की उपस्थिति और EditorBrowsable
विशेषता के पीछे तर्क पर खामोश है। क्या इसका वास्तव में मतलब है "इसका उपयोग न करें", जैसा कि मैंने लिखा होगा, या क्या इसका कुछ और कम निषिद्ध अर्थ है?
एमएसएफटी के कुछ लोगों ने इस पोस्ट में जवाब दिया था। http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/bd0e6f6c-cadd-48f1-8e1a-163c2f17e4ca/ लगता है कि 'EditorBrowsableState.Advanced' अधिक उपयुक्त हो सकता है, लेकिन ऐसा प्रतीत नहीं होता है किसी भी तकनीकी कारण के रूप में इसे क्यों नहीं कहा जाना चाहिए (कम से कम उस धागे से)। – keyboardP