2012-04-28 20 views
8

एक्स # xx का उपयोग कर xbox360 के लिए लक्षित एफ # कोड प्रोजेक्ट को पोर्टेबल क्लास लाइब्रेरी में कनवर्ट करने के बाद संकलित नहीं होता है।पोर्टेबल क्लास लाइब्रेरी में थ्रेड कैसे बनाएं?

let thread = Thread(fun() -> 
    setAffinity() 

थ्रेड लाल squiggles हो जाता है और त्रुटि संदेश दर्शाता है

त्रुटि 1 इस प्रकार, पर्याप्त नहीं सुलभ वस्तु कंस्ट्रक्टर्स

ज़रूर है कि अगर मैं वस्तु एक्सप्लोरर में mscorlib को देखो, इस प्रकार का कोई कन्स्ट्रक्टर नहीं है। फिर भी MSDN के अनुसार निर्माता xbox और पीसीएल में मौजूद है।

संपादित करें: मैं एक सी # पीसीएल के साथ की कोशिश की, और मैं एक ही त्रुटि मिली।

उत्तर

7

बनाना धागे पोर्टेबल नहीं है। आपका लिंक गलत है, यह पीसीएल के बारे में बात नहीं करता है।

यह पोर्टेबल कक्षा लाइब्रेरी का उपयोग कर की लागत, यह क्या सब कुछ है कि संभव लक्ष्य के कम से कम एक द्वारा समर्थित नहीं है घटाने के बाद ऐसा शेष है। जो ज्यादा नहीं छोड़ता है, पीसीएल काफी छोटा है। सबसे बड़ा लटका-एक ऐसा लक्ष्य है जिसे वास्तव में समर्थित नहीं माना जाता है, फिर भी, WinRT (उर्फ मेट्रो)। यह एक गंभीर रूप से प्रतिबंधित एपीआई है।

पर विचार करें ThreadPool.QueueUserWorkItem() के बजाय। मुझे लगता है कि पीसीएल में कुछ दिन का समर्थन किया जा रहा है। यह अभी प्रगति पर एक काम है।

+0

लिंक अंत में "समर्थित पोर्टेबल क्लास लाइब्रेरी" में कहता है। 'QueueUserWorkItem()' के बारे में सुझाव के लिए धन्यवाद, लेकिन यह मेरे मामले का विकल्प नहीं है, क्योंकि मैं यह नियंत्रित करना चाहता हूं कि थ्रेड किस कोर पर चलता है, और मुझे संदेह है कि थ्रेड पूल कम विलंबता गेम की आवश्यकता प्रदान करेगा। – Joh

+0

आह, हाँ, यह एक प्रलेखन बग है। एमएसडीएन लेख को एनोटेट नहीं कर सकता, डेविड कीन एसओ पर टैग पर नजर रखता है तो उम्मीद है कि यह देखता है। –

+0

नया थ्रेड बनाने में इतना "पोर्टेबल नहीं" क्या है? उदाहरण के लिए यदि मैं .net और विंडोज फोन के बीच कोड साझा करता हूं? – Grigory

1

नहीं चिकना होना लेकिन यह एक बग की तरह लगता है और यह है कि मैं कैसे आगे बढ़ना होगा है। fsbugs को यह माइक्रोसॉफ्ट डॉट कॉम पर भेजें

+0

'fsbugs' नेट कीड़े, केवल एफ # कीड़े के साथ सौदा नहीं है (के रूप में नाम का तात्पर्य है)। –

+0

यह एफ # के साथ एक समस्या की तरह लग रहा था ठीक से पीसीएल बनाना जिससे मैंने सुझाव दिया। –

+0

मैंने अब सी # प्रोजेक्ट के साथ प्रयास किया है और मुझे एक ही त्रुटि मिली है। इसलिए मैंने अपने प्रश्न से एफ # टैग हटा दिया है। गलतफहमी के लिए खेद है। – Joh

0

एक बीटा रिलीज़ जो .NET 4.0, SL5, फोन 7.5 में async का समर्थन करता है नहीं है। इस सूत्र पर डेविड कीन की पोस्ट देखें:

Can the Async CTP be used with a portable library

और बीसीएल ब्लॉग पर इस पोस्ट:

http://blogs.msdn.com/b/bclteam/archive/2012/10/22/using-async-await-without-net-framework-4-5.aspx

संबंधित मुद्दे