为什么我不能等待Async方法?

时间:2014-01-26 09:18:06

标签: c# windows-phone-8 async-await

代码如下:

public class XiciHttp
{
    public async Task<string> Login(string apiAddress)
    {
        using (HttpClient client = new HttpClient())
        {
            return await client.GetStringAsync(apiAddress);
        }
    }
}


错误发生在此处:

await client.GetStringAsync(apiAddress);



错误消息为:

  

无法将表达式类型'void'转换为异步方法返回类型   '字符串'



情况是:
VS2012 Update 4;
Windows Phone项目(基于WP 7.1)
本课程在PCL项目中 该项目使用NuGet(MS Async,HttpClient,Json.Net)来引用大量的库

奇怪的是:
单击“构建解决方案”时,错误列表窗口中不会发生错误 它说:
==========构建:1成功,0失败,1最新,0跳过==========


我的问题是:
 1.为什么
 2.如何解决?

2 个答案:

答案 0 :(得分:0)

重新启动Visual Studio 2012解决了此错误。

答案 1 :(得分:-1)

你如何调用Login()? 以下不会引起任何错误。

private async void GetString()
{
    var str = await Login("http://www.google.com");
}

public async Task<string> Login(string apiAddress)
{
    using (var client = new HttpClient())        
        return await client.GetStringAsync(apiAddress);
}