मुझे await
क्यों करना होगा?
आपको await
नहीं है, यही कारण है कि यह एक चेतावनी है, कोई त्रुटि नहीं। लेकिन, यदि आप async
विधि में हैं और आपके पास एक तरीका है जो एक प्रतीक्षा करने योग्य वस्तु देता है, तो अधिकांश समय, आपको इसे अनदेखा नहीं करना चाहिए।
सामान्य तुल्यकालिक कोड में, आप कुछ भी एक तरीका है आप कम्प्लिट्स कहा जाता है, हमेशा एक विधि कॉल ब्लॉक तक इंतजार करना विशेष करने की जरूरत नहीं है। लेकिन असीमित तरीकों के साथ, यदि आप पूरा होने तक प्रतीक्षा करना चाहते हैं तो आपको वास्तव में await
करना होगा। इसके अलावा, अगर अतुल्यकालिक आपरेशन विफल रहता है और एक अपवाद फेंकता है, आप इसके बारे में पता नहीं होगा जब तक आप विधि का परिणाम await
(या परिणाम से अपवाद किसी और तरीके से, इस तरह के Wait()
बुला अगर awaitable एक Task
है के रूप में मिलता है) ।
तो, यदि आप async
विधि में एक लौटा हुआ प्रतीक्षा मूल्य अनदेखा करते हैं, तो संभव है कि आपके कोड में एक बग है, जो चेतावनी से बचने की कोशिश कर रहा है।
आपके मामले में, ContinueWith()
एक Task
, जो हो सकता है await
एड देता है, तो संकलक मानता है कि आप चाहिएawait
यह। लेकिन इस मामले में, आप निरंतर पूरा होने तक प्रतीक्षा नहीं करना चाहते हैं और Close()
अधिकतर एक अपवाद नहीं फेंकेंगे। इसलिए, इस मामले में, चेतावनी एक झूठी सकारात्मक है, यह वास्तव में कोड में कोई समस्या नहीं दर्शाती है।
कर सकते हैं मैं Haz Suround Coud? –
क्या आप पूरी विधि पोस्ट कर सकते हैं? –
स्टीफन, यह आपके कोड :-) http://stackoverflow.com/a/12513296/98422 –