2016-01-27 2 views
8

इस तरह के मामले में, जहां मेरे काम है क्योंकि कुछ शर्तों के तुरन्त लौट सकते में:.NET async/प्रतीक्षा करें: इस मामले में मुझे कुछ वापस करना चाहिए?

public async Task Test(List<int> TestList) 
{ 
    if (TestList.Count() == 0) 
     return; 

    // Do something 
    await UploadListAsync(TestList); 
} 

यह सही return; है, मैं Task.FromResult(false); का उपयोग करना चाहिए, या वहाँ एक और अधिक सही तरीका क्या है?

+5

बस एक वापसी सही है। –

उत्तर

11

जब आप एक async उपयोग कर रहे हैं, तो आप एक Task लौट सकते हैं नहीं स्पष्ट रूप से (संपादित देखें) - वापसी मान Task की वापसी मूल्य होने के लिए संकलक द्वारा बॉक्सिंग किया गया है। इस प्रकार, async विधियों को अन्य विधियों और return की तरह व्यवहार करना चाहिए यदि उन्हें तर्क से जल्दी से जमानत की आवश्यकता है।

संपादित करें: एक बार जब आप एक async के दौरान एक Task लौटा सकते हैं या वापसी प्रकार Task<Task... है, लेकिन यह अभी भी भीतरी Task, नहीं बाहरी लौटने किया जाएगा, के बाद से संकलक ही रैपिंग किया गया है । यह भी Task रों

0

Task है नई void की एक श्रृंखला आईएनजी एक काफी दुर्लभ उपयोग के मामले के रूप में करने का विरोध किया await होना चाहिए!

async विधियों के संबंध में!

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

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