दिलचस्प पोस्ट
PHP में वस्तु की संरक्षित संपत्ति कैसे प्राप्त करें PHP और MYSQL: JOIN कार्रवाई में अस्पष्ट स्तंभ नामों को हल करने के लिए कैसे? एमवीसी 4 रेजर फाइल अपलोड करें MySQL से कैसे चयन करें जहां टेबल नाम वैरिएबल है एक समारोह से असाइन कैसे करें जो एक से अधिक मान देता है? सरणी को दोहराए जाने के बजाए बार की संख्या को परिभाषित करने के लिए रास्ता? तिथि से महीने के आखिरी दिन कैसे खोजें? आईफ़ोन पर एनएसएक्सएलएल पार्सर, मैं इसका इस्तेमाल एक्सएमएल फाइल में कैसे करूँ? टूलबार नेविगेशन आइकन कभी भी सेट नहीं होता mysql संग्रहीत कार्यविधि जो स्वयं को फिर से कॉल करती है पॉलामोफिक मान हास्केल में क्यों नहीं अनुमान लगाए गए हैं? Http: // www के साथ या बिना यूआरएल मैच करने के लिए नियमित अभिव्यक्ति पैटर्न Matplotlib में एक भूखंड को साफ करने के लिए जब cla (), clf () या बंद () का उपयोग करें? वीबीए का उपयोग करके वेबसाइट से डेटा स्क्रैप करना Json.org पर प्रयुक्त रेल आरेख बनाने के लिए उपकरण

कॉलिंग थ्रेड एसटीए होना चाहिए, क्योंकि कई यूआई घटकों को यह आवश्यकता है

मैं http://www.codeproject.com/KB/IP/Facebook_API.aspx का उपयोग कर रहा हूँ

मैं एक्सएएमएल को कॉल करने की कोशिश कर रहा हूं जो WPF का उपयोग कर बनाया गया है। लेकिन यह मुझे एक त्रुटि देता है:

कॉलिंग थ्रेड एसटीए होना चाहिए, क्योंकि कई यूआई घटकों को यह आवश्यकता है।

मुझे नहीं पता क्या करना है। मैं यह करने की कोशिश कर रहा हूं:

FacebookApplication.FacebookFriendsList ffl = new FacebookFriendsList(); 

लेकिन यह मुझे यह त्रुटि दे रहा है

मैंने एक पृष्ठभूमि कार्यकर्ता जोड़ा:

 static BackgroundWorker bw = new BackgroundWorker(); static void Main(string[] args) { bw.DoWork += bw_DoWork; bw.RunWorkerAsync("Message to worker"); Console.ReadLine(); } static void bw_DoWork(object sender, DoWorkEventArgs e) { // This is called on the worker thread FacebookApplication.FacebookFriendsList ffl = new FacebookFriendsList(); Console.WriteLine(e.Argument); // Writes "Message to worker" // Perform time-consuming task... } 

वेब के समाधान से एकत्रित समाधान "कॉलिंग थ्रेड एसटीए होना चाहिए, क्योंकि कई यूआई घटकों को यह आवश्यकता है"

यदि आप मुख्य थ्रेड से कॉल करते हैं, तो आपको मुख्य विधि में STAThread विशेषता जोड़नी होगी, जैसा कि पिछले उत्तर में बताया गया है।

यदि आप एक अलग धागा का उपयोग करते हैं, तो उसे एसटीए (सिंगल-थ्रेडेड अपार्टमेंट) में होना चाहिए, जो पृष्ठभूमि वर्क थ्रेड के मामले में नहीं है आपको थ्रेड को स्वयं बनाना होगा, जैसे:

 Thread t = new Thread(ThreadProc); t.SetApartmentState(ApartmentState.STA); t.Start(); 

ThreadProc के साथ एक थ्रेडस्टार्ट प्रकार का एक प्रतिनिधि है।

डिस्पैचर से अपना कोड डालने की कोशिश करें:

 Application.Current.Dispatcher.Invoke((Action)delegate{ //your code }); 

मुझे संदेह है कि आप पृष्ठभूमि थ्रेड से UI घटक को कॉलबैक प्राप्त कर रहे हैं। मैं सुझाव देता हूं कि आप उस कॉल को एक पृष्ठभूमिवेर्कर का उपयोग करते हुए बनाते हैं क्योंकि यह UI थ्रेड को अवगत है।

BackgroundWorker के लिए, मुख्य प्रोग्राम को [STAThread] के रूप में चिह्नित किया जाना चाहिए।

आप यह भी कोशिश कर सकते हैं

 // create a thread Thread newWindowThread = new Thread(new ThreadStart(() => { // create and show the window FaxImageLoad obj = new FaxImageLoad(destination); obj.Show(); // start the Dispatcher processing System.Windows.Threading.Dispatcher.Run(); })); // set the apartment state newWindowThread.SetApartmentState(ApartmentState.STA); // make the thread a background thread newWindowThread.IsBackground = true; // start the thread newWindowThread.Start(); 

आवेदन। वर्तमान। डिस्पार्टर। इन्वोक (एक्शन) प्रतिनिधि {// put code here});

मेरे लिए, यह त्रुटि उत्पन्न हुई क्योंकि एक अशक्त पैरामीटर पारित किया गया था। वैरिएबल के मूल्यों की जांच के दौरान कोड को बदलने के बिना मेरी समस्या तय की गई। मैंने पृष्ठभूमिवर्कर का इस्तेमाल किया

यदि आप किसी मौजूदा धागे में एक नई विंडो यूआई स्टेटमेंट कहते हैं, तो यह एक त्रुटि फेंकता है इसके बजाय मुख्य थ्रेड के अंदर एक नया धागा बनाएं और नए बच्चे के थ्रेड में विंडो यूआई स्टेटमेंट लिखें।