मैं नेट 4.0+ टास्क समानांतर लाइब्रेरी अवधारणाओं की समझ पाने के लिए कोशिश कर रहा हूँ ...कार्य की परिणाम संपत्ति गैर-सामान्य कार्य (सी # 4.0+) के लिए अनुपलब्ध क्यों है?
निम्नलिखित सी # 4.0 कोड स्निपेट में:
Task t = Task.Factory.StartNew(() =>
{
Console.WriteLine("I am the task");
return "res1";
});
क्यों संकलक नहीं है (और रन-टाइम या तो) यदि किसी भी कार्य का उपयोग नहीं किया जाता है तब तक वापसी का उपयोग नहीं किया जा सकता है:
Task<string> t = Task.Factory.StartNew(() =>
{
Console.WriteLine("I am the task");
return "res1";
});
या यह (लौटा ऑब्जेक्ट) का उपयोग किया जा सकता है?
क्या मैं सही ढंग से समझता हूं कि <string>
Task<string>
में केवल वापसी प्रकार (एड ऑब्जेक्ट) या t.Result
का पता लगाने या आश्वस्त करने के लिए आवश्यक है?
या इसके अलावा मुझे कोई अन्य छुपाएं हैं?
इस प्रकार को लौटाई गई वस्तु के प्रकार से निर्धारित नहीं किया जा सकता है?
आईई। गैर-जेनेरिक कार्यों के लिए एक कार्य की परिणाम संपत्ति अनुपलब्ध क्यों है?
हां, मैंने इसे देखा लेकिन मुझे समझ में नहीं आया कि क्यों गैर-सामान्य कार्य में 'परिणाम' संपत्ति नहीं हो सकती है – Fulproof
@ फ़ुलप्रूफ यह वैचारिक बात है। 'टास्क 'एसिंक/टास्क वर्ल्ड में' शून्य' रिटर्न प्रकार के बराबर वैचारिक रूप से समतुल्य है, जबकि 'कार्य '' टी' रिटर्न प्रकार के बराबर है। अब, एक विधि 'शून्य फू() 'दिया गया है, आप' var result = Foo(); ',' करने की कोशिश नहीं करेंगे? :) –
क्यों, गैर-जेनेरिक कार्य "गतिविधि" से वापस लौटने से संकलक द्वारा त्रुटि या चेतावनी के रूप में भ्रमित नहीं किया जाता है? – Fulproof