किस परिदृश्य के तहत कोई भी उपयोग करना चाहेगा
public async Task AsyncMethod(int num)
के बजाय
public async void AsyncMethod(int num)
एकमात्र ऐसा परिदृश्य जिसके बारे में मैं सोच सकता हूं कि क्या आपको इसकी प्रगति को ट्रैक करने में सक्षम होने के लिए कार्य की आवश्यकता है।
इसके अतिरिक्त, निम्नलिखित विधि में, क्या एसिंक्रोनस और प्रतीक्षित कीवर्ड अनावश्यक हैं?
public static async void AsyncMethod2(int num)
{
await Task.Factory.StartNew(() => Thread.Sleep(num));
}
Thread.Sleep
अपने कार्यों के साथ आपको चाहिए await Task.Delay(num)
बजाय
Task.Delay
नहीं है Task.AsyncDelay
Async कर रहे हैं सभी के रूप में काम पर तरीकों
async void
इसके बजाय घोषित किया गया था async Task
। विधि दुर्घटनाग्रस्त हो गई क्योंकि यह निष्पादित करने के लिए समाप्त होने से पहले नियंत्रक के सदस्य के रूप में घोषित एंटिटी फ्रेमवर्क संदर्भ वस्तु का उपयोग कर रहा था। रूपरेखा ने निष्पादित करने के लिए अपनी विधि समाप्त होने से पहले नियंत्रक को निपटाया। मैंने टास्क को async में बदल दिया और इसने काम किया।
Foo()
बन जाएगाFooAsync()
।