2013-11-21 8 views
9

Visual Studio si lamenta sui seguenti punti:Non posso aspettare l'attesa?

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>' 

ho pensato che ho fatto prima, non è GetStringAsync awaitable?

+2

ci mostri metodo completo? Forse non è contrassegnato dal modificatore 'async'? – tpeczek

+0

@tpeczek ive ha pubblicato la funzione – Jason94

+4

Probabilmente stai mirando a .NET 4.0. Puoi passare a 4.5? – dcastro

risposta

-3

Assicurarsi che client.GetStringAsync ("URL") è un compito asincrona

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

GetStringAsync non deve essere asincrono. Ha solo bisogno di restituire l'attività – jt000

20

Probabilmente stai mira .NET 4.0.

Se è possibile, passare a .NET 4.5 che supporta la semantica asincrona/attende.

Se non è possibile, è consigliabile utilizzare l'Async Targeting Confezione: https://www.nuget.org/packages/Microsoft.CompilerServices.AsyncTargetingPack

Modifica

Come per i commenti, Microsoft.Bcl.Async dovrebbe essere utilizzato al posto: https://www.nuget.org/packages/Microsoft.Bcl.Async

+0

La mia libreria di classi portatili ha come target .NET 4.5: -/ – Jason94

+1

'AsyncTargetingPack' è piuttosto vecchio; 'Microsoft.Bcl.Async' è il pacchetto corretto da utilizzare. –

+0

@StephenCleary grazie per il suggerimento, ha aggiornato la mia risposta. – dcastro

Problemi correlati