2013-11-21 14 views
9

दृश्य स्टूडियो निम्नलिखित पर शिकायत:मैं प्रतीक्षा करने की प्रतीक्षा नहीं कर सकता?

public RelayCommand SendRegistrationCommand { get; private set; } 
public async void SendRegistration() 
{ 
    HttpClient client = new HttpClient(); 
    var response = await client.GetStringAsync("url"); 

    // ... todo 
} 

Cannot await 'System.Threading.Tasks.Task<string>' 

मैंने सोचा कि मैं पहले इस किया है, GetStringAsync awaitable नहीं है?

+2

आप हमें दिखा सकते हैं पूर्ण विधि? शायद यह 'async' संशोधक द्वारा चिह्नित नहीं है? – tpeczek

+0

@tpeczek ive ने फ़ंक्शन – Jason94

+4

पोस्ट किया है आप शायद .NET 4.0 को लक्षित कर रहे हैं। क्या आप 4.5 पर स्विच कर सकते हैं? – dcastro

उत्तर

-3

सुनिश्चित करें कि client.GetStringAsync ("URL") एक async टास्क

private async Task GetStringAsync(string str) 
{ 
} 
+0

के साथ एक WP8 ऐप बनाएं I GetStringAsync को async होने की आवश्यकता नहीं है। इसे केवल कार्य – jt000

20

आप शायद .NET 4.0 को लक्षित कर रहे है।

यदि आप कर सकते हैं, तो .NET 4.5 पर स्विच करें जो async/semantics का इंतजार करता है।

यदि आप नहीं कर सकते, Async लक्ष्य निर्धारण पैक का उपयोग करें: https://www.nuget.org/packages/Microsoft.CompilerServices.AsyncTargetingPack

संपादित

टिप्पणियों के अनुसार, Microsoft.Bcl.Async बजाय इस्तेमाल किया जाना चाहिए: https://www.nuget.org/packages/Microsoft.Bcl.Async

+0

लौटने की आवश्यकता है मेरी पोर्टेबल क्लास लाइब्रेरी लक्ष्यीकरण कर रही है .NET 4.5: -/ – Jason94

+1

'AsyncTargetingPack' काफी पुराना है; 'Microsoft.Bcl.Async' उपयोग करने के लिए सही पैकेज है। –

+0

@StephenCleary टिप के लिए धन्यवाद, मेरा जवाब अपडेट किया गया। – dcastro

संबंधित मुद्दे