दिलचस्प पोस्ट
jQuery एजेक्स लोड () जावा स्क्रिप्ट निष्पादित नहीं है? WCF क्लाइंट में त्रुटि WS- सुरक्षा के साथ एक्सिस 2 वेब सेवा उपयोगकर्ता नामटोकन पासवर्डडिजिस्ट प्रमाणन स्कीम इस तरह के तत्वों के लिए बाहरी किनारे की सीमा जोड़ें: ◝◟ ___ ◞◜ कैसे mysql डेटाबेस में php फ़ाइलों का उपयोग करने के लिए छवियों को स्टोर करने के लिए Ajax और PHP $ _FILES का उपयोग कर कैनवास तत्वों से चित्र भेजना बैच फ़ाइल में स्ट्रिंग प्रतिस्थापन फ़्रेम से इनहेरिट करना या टंकिनर आवेदन में नहीं ASP.NET MVC – रूटिंग – फ़ाइल एक्सटेंशन के साथ एक कार्यवाही जीसीएम से कैनोनिकल आईडी कैसे प्राप्त करें I अब तक पॉइंटर्स और निकट पॉइंटर्स के बीच अंतर क्या है? क्या जावा स्विंग के लिए कोई भी अच्छी और मुफ्त दिनांक और समय पिकर उपलब्ध है? मेरी छवि के नीचे स्थान क्यों है? HTML इनपुट – नाम बनाम आईडी छवि चित्र बॉक्स को सी # पर अधिलेखित करें खाली यूडीपी और टीसीपी पैकेट का आकार?

एक async विधि के अंत में, क्या मुझे वापस आना चाहिए या इंतजार करना चाहिए?

एक टास्क-रिटर्निंग एसिंक पद्धति के अंत में, अगर मैं अन्य एसिंक पद्धति को कॉल करता हूं, तो मैं इसका await कर सकता हूं या अपना कार्य return कर सकता हूं। प्रत्येक के परिणाम क्या हैं?

  Task FooAsync() { return BazAsync(); // Option A } async Task BarAsync() { await BazAsync(); // Option B } 

Solutions Collecting From Web of "एक async विधि के अंत में, क्या मुझे वापस आना चाहिए या इंतजार करना चाहिए?"

आप कार्य वापस नहीं कर सकते हैं यदि विधि को async घोषित किया गया है – तो यह काम नहीं करेगा, उदाहरण के लिए:

 async Task BarAsync() { return BazAsync(); // Invalid! } 

इसके लिए एक वापसी Task<Task> की आवश्यकता होगी

यदि आपकी पद्धति सिर्फ थोड़ी मात्रा में काम कर रही है और फिर सिर्फ एक async विधि को बुला रही है, तो आपका पहला विकल्प ठीक है, और इसका अर्थ है कि इसमें एक कम कार्य शामिल है। आपको अवगत होना चाहिए कि आपके तुल्यकालिक विधि के भीतर फेंक दिए गए किसी भी अपवाद को तुल्यकालिक रूप से वितरित किया जाएगा – वास्तव में, यह है कि मैं तर्क मान्यकरण को संभाल करना पसंद करता हूं।

ओवरलोडिंग को लागू करने के लिए यह एक सामान्य पैटर्न है, जैसे रद्दकरण टोकन द्वारा।

बस जागरूक रहें कि अगर आपको कुछ और इंतजार करने के लिए बदलने की जरूरत है, तो आपको इसे एक ऐंस्किक विधि बनाने की आवश्यकता होगी उदाहरण के लिए:

 // Version 1: Task BarAsync() { // No need to gronkle yet... return BazAsync(); } // Oops, for version 2 I need to do some more work... async Task BarAsync() { int gronkle = await GronkleAsync(); // Do something with gronkle // Now we have to await BazAsync as we're now in an async method await BazAsync(); } 

इस लिंक को देखें जहां यह वर्णित है: http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx

 async Task<int> TaskOfTResult_MethodAsync() { int hours; // . . . // The body of the method should contain one or more await expressions. // Return statement specifies an integer result. return hours; } // Calls to TaskOfTResult_MethodAsync from another async method. private async void CallTaskTButton_Click(object sender, RoutedEventArgs e) { Task<int> returnedTaskTResult = TaskOfTResult_MethodAsync(); int intResult = await returnedTaskTResult; // or, in a single statement //int intResult = await TaskOfTResult_MethodAsync(); } // Signature specifies Task async Task Task_MethodAsync() { // . . . // The body of the method should contain one or more await expressions. // The method has no return statement. } // Calls to Task_MethodAsync from another async method. private async void CallTaskButton_Click(object sender, RoutedEventArgs e) { Task returnedTask = Task_MethodAsync(); await returnedTask; // or, in a single statement //await Task_MethodAsync(); }