दिलचस्प पोस्ट
क्या पुट, डिलीट, हेड, आदि अधिकांश वेब ब्राउज़रों में उपलब्ध हैं? एक अद्वितीय और नियतात्मक तरीके से, दो पूर्णांकियों को मैप करने के लिए नई स्वचालित संदर्भ गिनती तंत्र कैसे काम करता है? सी ++ 11 में टी एंड ए (डबल एम्परसेंड) क्या होता है? गोल UIView CALayers का उपयोग करें – केवल कुछ कोनों – कैसे? सीमा लंबाई को सीमित करने का कोई भी तरीका? PHP – foreach लूप में वर्तमान ऑब्जेक्ट को संशोधित करें विंक कमांड लाइन में yanked पाठ कैसे पेस्ट करें? # कैसे <bits / stdc ++। H> को शामिल करता है> सी ++ में काम करता है? आप पायथन में डेमॉन कैसे बनाते हैं? java.lang.OutOfMemoryError: जावा हीप स्पेस एएसपी.नेट "विशेष" टैग SQL नेटवर्क इंटरफेस, त्रुटि: 50 – स्थानीय डेटाबेस रनटाइम त्रुटि हुई। एक स्वचालित उदाहरण नहीं बना सकते फ़ाइल या विधानसभा को लोड नहीं किया जा सका 'System.Net.Http, संस्करण = 2.0.0.0 में एमवीसी 4 वेब एपीआई क्या आप HTML को पार्स करने के उदाहरण प्रदान कर सकते हैं?

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

मैं 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});

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

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