0
如何从异步方法获取结果?从windows phone中的异步方法获取结果
async Task<string> Get(string Url)
{
HttpClient httpClient = new HttpClient();
httpClient.MaxResponseContentBufferSize = 10485760;
httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
HttpResponseMessage response = await httpClient.GetAsync(Url);
return await response.Content.ReadAsStringAsync();
}
调用该方法
var a = Get(address).Result;
Outbox.Text = a;
时,试图得到结果,在输出winodow我得到 “线程0xdf4已与代码0(为0x0)退出”
并没有什么happend
但我可以通过这种方式得到结果
async Task Get(string Url)
{
HttpClient httpClient = new HttpClient();
httpClient.MaxResponseContentBufferSize = 10485760;
httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
HttpResponseMessage response = await httpClient.GetAsync(Url);
Outbox.Text = response.Content.ReadAsStringAsync().Result;
}
,并通过这种方式
var a = Get(address);
我尝试在Windows Phone 8.1的代码调用该方法。 谢谢。
我之前试过这个,'await'操作符只能在异步方法中使用 –
这就意味着你需要在你的方法签名中添加'async'关键字。例如,如果你有'public void Button_Click(...)',把它改为'public async void Button_Click(...)' –
yup,它可以工作。非常感谢 –