मैं एक कार्यक्रम है कि मैं चलाने के लिए और बीच में मैं यह संदेश प्राप्त के बारे में अजीब संदेश \ मेरे दस्तावेज़ \ स्कूलस्टफ \ आईआर सूचना \ होम वर्क \ FianlProject \ finalProject \ finalProject \ bin \ Debug \ finalProject.vshost.exe '। अतिरिक्त जानकारी: सीएलआर COM संदर्भ 0x3407968 से 60 सेकंड के लिए COM संदर्भ 0x3407ad8 में संक्रमण करने में असमर्थ रहा है। गंतव्य संदर्भ/अपार्टमेंट का स्वामित्व वाला धागा संभवतः एक गैर पंपिंग प्रतीक्षा कर रहा है या विंडोज संदेशों को पंप किए बिना बहुत लंबे समय तक चलने वाले ऑपरेशन को संसाधित कर रहा है। इस स्थिति में आम तौर पर नकारात्मक प्रदर्शन प्रभाव होता है और यह भी समय के साथ लगातार गैर-प्रतिक्रियाशील या मेमोरी उपयोग जमा हो रहा है। इस समस्या से बचने के लिए, सभी एकल थ्रेडेड अपार्टमेंट (एसटीए) थ्रेडों को पंपिंग प्रतीक्षा प्राइमेटिव्स (जैसे CoWaitForMultipleHandles) का उपयोग करना चाहिए और नियमित रूप से लंबे समय तक चलने वाले संचालन के दौरान संदेशों को पंप करना चाहिए।सी # में धागे
मैं समझता हूं कि इस तथ्य के साथ कुछ करने के लिए यह है कि यह बिना किसी रोक या 60 सेकंड के लिए चलता है? यह एक समस्या कैसे है? मैंने अपने प्रोग्राम के मुख्य से पहले [STAThread] भी रखा क्योंकि अगर मैं इसे हटा देता हूं तो यह मुझे यह संदेश दिखाता है:
सिस्टम 'थ्रेडिंग। थ्रेडस्टेट एक्सेप्शन' का एक अनचाहे अपवाद System.Windows.Forms.dll में हुआ। अतिरिक्त जानकारी: ओएलई कॉल किए जाने से पहले वर्तमान धागा एकल थ्रेड अपार्टमेंट (एसटीए) मोड पर सेट किया जाना चाहिए। सुनिश्चित करें कि आपके मुख्य फ़ंक्शन में STATHreadAttribute चिह्नित है। यह अपवाद केवल तब उठाया जाता है जब प्रक्रिया से डीबगर संलग्न होता है।
कोई भी जानता है कि मैं इस समस्या को कैसे हल कर सकता हूं?
अग्रिम धन्यवाद,
लीना
यदि मैं संदर्भ स्विच डेडलॉक बंद करता हूं, तो क्या इससे कोई नुकसान हो सकता है? मैं विजुअल स्टूडियो 2008 का उपयोग कर रहा हूं .. –
कुछ भी उड़ने वाला नहीं है। आप वास्तव में एक डेडलॉक हो सकता है। आप जल्दी से पता लगाएंगे, आपका प्रोग्राम स्थिर हो जाएगा। –