मैं निम्नलिखित कोड है:कैच ब्लॉक में प्रतीक्षा
WebClient wc = new WebClient();
string result;
try
{
result = await wc.DownloadStringTaskAsync(new Uri("http://badurl"));
}
catch
{
result = await wc.DownloadStringTaskAsync(new Uri("http://fallbackurl"));
}
असल में मैं किसी URL से डाउनलोड करना चाहते है और जब यह एक अपवाद मैं अन्य यूआरएल से डाउनलोड करना चाहते के साथ विफल रहता है। निश्चित रूप से दोनों समय async। हालांकि कोड,
त्रुटि CS1985 की वजह से संकलन नहीं करता है: एक पकड़ने खंड के शरीर में का इंतजार नहीं कर सकते
ठीक है, यह किसी भी कारण से मना किया है, लेकिन क्या सही कोड पैटर्न यहाँ है?
संपादित करें:
अच्छी खबर यह है कि C# 6.0 will likely allow await calls both in catch and finally blocks है।
धन्यवाद svick, कि काफी स्पष्ट है, कुछ भी बेहतर, async को अधिक कनेक्ट? –
मुझे ऐसा नहीं लगता कि ऐसा कुछ भी मौजूद है। – svick
आपके मामले में, आप कार्य निरंतरता का भी उपयोग कर सकते हैं। लेकिन 'svick' के जवाब में कोड निरंतरता का उपयोग कर कोड से क्लीनर है। –