संभव डुप्लिकेट:
Why does the async keyword exist"async" विधि के अंदर "प्रतीक्षा" क्यों होना चाहिए?
मैं दो तरीकों की है। एक सामान्य विधि है (MyMethod
) और एक एसिंक विधि (MyMethodAsync
) है। मुझे एक संकलन त्रुटि मिलती है।
static string MyMethod()
{
var result = await MyMethodAsync(); // compile error here
return result;
}
async static Task<string> MyMethodAsync()
{
/** perform my logic here... **/
Thread.Sleep(1000);
return "yes";
}
त्रुटि संदेश
'का इंतजार है' ऑपरेटर केवल एक async विधि के भीतर इस्तेमाल किया जा सकता है। इस विधि को 'async' संशोधक के साथ चिह्नित करने और इसके कार्य प्रकार को 'कार्य' में बदलने पर विचार करें।
मैं उलझन में हूं। जब मैं await
कीवर्ड का उपयोग करता हूं, तो कॉलिंग थ्रेड निलंबित कर दिया जाएगा और कार्य पूर्ण होने की प्रतीक्षा की जाएगी। तो एक बार await
उपयोग में है, विधि अब एक async विधि नहीं है। सही?
टिप्पणी: मुझे पता है कि मुझे तर्क चाहिए कि मुझे MyMethod
और MyMethodAsync
MyMethod
पर कॉल करना चाहिए जो मैं चाहता हूं।