मैं वर्तमान में पढ़ रहा हूँ "सी # कुकबुक में संगामिति" स्टीफन Cleary से, और मैं निम्नलिखित तकनीक देखा:कार्य के समान कार्य पूरा होने की प्रतीक्षा करें। परिणाम?
var completedTask = await Task.WhenAny(downloadTask, timeoutTask);
if (completedTask == timeoutTask)
return null;
return await downloadTask;
downloadTask httpclient.GetStringAsync के लिए एक कॉल है, और timeoutTask टास्क को क्रियान्वित कर रहा है। विलंब।
अगर यह समय-समय पर नहीं हुआ, तो डाउनलोडटास्क पहले ही पूरा हो चुका है। DownloadTask.Result को वापस करने के बजाए दूसरा इंतजार करना जरूरी क्यों है, यह देखते हुए कि कार्य पहले ही पूरा हो चुका है?
यहां कुछ संदर्भ गायब हैं, और जब तक कि लोगों को आसानी से पुस्तक तक पहुंच न हो, आपको इसे शामिल करने की आवश्यकता होगी। 'डाउनलोड टास्क' और 'टाइमआउट टास्क' क्या है? वो क्या करते हैं? –
मुझे यहां सफल समापन के लिए वास्तविक जांच नहीं दिखाई दे रही है। कार्य को बहुत अच्छी तरह से गलती की जा सकती है, और उस स्थिति में * 'await' के साथ' अपवाद डिस्पैचइन्फो 'के माध्यम से' परिणाम 'बनाम' अपवाद 'के साथ' पृथक अपवाद 'अलग-अलग होगा। स्टीफन टब के ".NET 4.5 में कार्य अपवाद हैंडलिंग" में अधिक विस्तार से चर्चा की गई: http://blogs.msdn.com/b/pfxteam/archive/2011/09/28/task-exception-handling-in-net-4 -5.aspx) –
आपको इसे एक उत्तर @ KirillShlenskiy – Carsten