检索结果时,WP7上的DownloadStringTaskAsync挂起

时间:2011-06-23 02:50:17

标签: c# windows-phone-7 async-ctp

我使用Async CTP SP1将一堆WP7代码转换为使用DownloadStringTaskAsync而不是DownloadStringAsync。它没有工作,所以我把我的代码简化了一堆,最后得到了这两行:

var wc = new WebClient();
var result = wc.DownloadStringTaskAsync("http://www.weather.gov").Result;

如果我在Windows机器上使用控制台应用程序运行此方法。它按预期工作,我得到一个包含weather.gov内容的字符串。如果我在一个空白的WP7应用程序中在App的构造函数中运行相同的2行,它会在等待Result变为可用时挂起。

任何人都可以帮我修理这些线路,以便他们可以在手机上工作吗?或者这是CTP中的一个错误,我现在应该跳过它。

1 个答案:

答案 0 :(得分:2)

Windows Phone在UI线程上返回HTTP请求。通过访问Result,您将阻止UI线程,从而使响应无法返回。

考虑到您正在使用异步CTP,为什么要阻止?

var result = await wc.DownloadStringTaskAsync("http://www.weather.gov");