async
. की मूल बातें समझना उपयोगी है / await
क्योंकि यह कुछ हद तक टपका हुआ सार है और इसमें कई नुकसान हैं।
अनिवार्य रूप से, आपके पास दो विकल्प हैं:
-
समकालिक रहें। इस मामले में,
.Result
और.Wait()
async कॉल पर, क्रमशः, उदा। कुछ ऐसा// Insert: collection.InsertOneAsync(user).Wait(); // FindAll: var first = collection.Find(p => true).ToListAsync().Result.FirstOrDefault();
-
अपने कोड बेस में async जाओ। इसे async करना काफी 'संक्रामक' है, दुर्भाग्य से, इसलिए या तो आप बहुत कुछ सब कुछ async में बदल देते हैं, या नहीं। सावधान, सिंक और एसिंक्स को गलत तरीके से मिलाने से गतिरोध पैदा होगा . async का उपयोग करने के कई फायदे हैं, क्योंकि आपका कोड तब भी चल सकता है जब MongoDB अभी भी काम कर रहा हो, उदा.
// FindAll: var task = collection.Find(p => true).ToListAsync(); // ...do something else that takes time, be it CPU or I/O bound // in parallel to the running request. If there's nothing else to // do, you just freed up a thread that can be used to serve another // customer... // once you need the results from mongo: var list = await task;