2013-11-21 43 views
9

Visual Studioが以下に文句:私は待つことができません?

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")はおそらく.NET 4.0をターゲットにしている非同期タスク

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

GetStringAsyncは非同期である必要はありません。タスクを返すだけです。 – jt000

20

であることを確認してください。

可能であれば、async/awaitセマンティクスをサポートする.NET 4.5に切り替えます。あなたは、非同期ターゲットパックの使用を検討することができない場合は

https://www.nuget.org/packages/Microsoft.CompilerServices.AsyncTargetingPack

編集

はコメント1として、Microsoft.Bcl.Asyncを代わりに使用してください:https://www.nuget.org/packages/Microsoft.Bcl.Async

+0

私の移植可能なクラスライブラリは.NET 4.5をターゲットにしています: -/ – Jason94

+1

'AsyncTargetingPack'はかなり古いです。 'Microsoft.Bcl.Async'は正しいパッケージです。 –

+0

@StephenClearyはチップをありがとう、私の答えを更新しました。 – dcastro

関連する問題