Async/Await अभी भी अपेक्षाकृत नया है, लेकिन एपीआई को स्पष्ट करने में मदद करने के लिए कुछ अच्छे अभ्यास हैं।
- एक विधि ही घोषित करने के रूप में
async
मतलब है कि यह
async
पर बाद में await
करने की उम्मीद कर रहा है परोक्ष आप के लिए एक Task
बनाता है: मूल बातें इस कर रहे हैं।
await
एक बुकमार्क की तरह है। एप्लिकेशन फिर से शुरू होता है जहां प्रतीक्षा कीवर्ड का उपयोग किया गया था।
- आप कर सकते हैं नहीं
await
कुछ भी है कि नहीं IAwaitable
(सबसे अधिक एक Task
) (citation)
एक आवेदन जहां दोनों अतुल्यकालिक कॉल और तुल्यकालिक कॉल देखते हैं में, हम को अपनाया है एक नामकरण परंपरा है:
async
कॉल Task
या Task<T>
पर लौटें और नाम के अंत में Async
शब्द जोड़ें।
- सिंक्रोनस कॉल (डिफ़ॉल्ट) बस किसी भी विधि की तरह काम करता है और कोई विशेष सम्मेलन नहीं होता है।
अक्सर, दो विधियां हो सकती हैं जो एक ही काम करती हैं, लेकिन एक सिंक्रोनस है और दूसरा नहीं। आप या तो इसे दो अलग-अलग तरीकों से लागू कर सकते हैं, या आप एक दूसरे के साथ लपेट सकते हैं। यह वास्तव में आपकी जरूरतों पर निर्भर करता है और आपको अधिक उत्तरदायी एप्लिकेशन देने के लिए क्या जा रहा है।
उपर्युक्त उदाहरण में, एसिंक और सामान्य विधि कॉल को संभालने का उचित तरीका 0 विधियों का खुलासा करने के लिए MyLibrary
के लिए होगा। उदाहरण के इस तरह होगा:
public static class MyLibrary
{
public static void DoSomething()
{
// do some work
}
public static async Task DoSomethingAsync()
{
// do similar work but use async API,
// can also simply call DoSomething().
}
}
// In another part of code would be called like this:
public static async Task BiggerMethod()
{
MyLibrary.DoSomething();
await MyLibrary.DoSomethingAsync();
}
क्या आप से बचने के लिए एक नियमित रूप से विधि के साथ एक async
विधि लपेटकर है चाहता हूँ। जैसे ही आप सीधे Task
के साथ काम करते हैं, आप async
और await
के सभी लाभ खो देते हैं और आप उन स्थानों को पेश करते हैं जहां आपका कोड डेडलॉक हो सकता है।
स्रोत
2016-02-16 13:18:51
प्रयास करें जो चाहो कर सकते हैं मेरा पहला उदाहरण के रूप में - http://stackoverflow.com/questions/9208921/async- देखना अधिक जानकारी के लिए ऑन-मेन-विधि-ऑफ-कंसोल-ऐप। – rhughes
यह उत्तर आपके लिए सहायक हो सकता है: http://stackoverflow.com/questions/22808475/how-to-force-execution-to-stop-till-asynchronous-function-is-fully-executed – user3340627
देखें [बीच कोई अंतर "कार्य का इंतजार करो। रुन(); वापसी; "और" वापसी कार्य। रुन() "?] (http://stackoverflow.com/q/21033150/1768303)। सच्चाई के लिए – Noseratio