1

我使用 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 中的一个错误,我现在应该跳过它。

4

1 回答 1

2

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

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

var result = await wc.DownloadStringTaskAsync("http://www.weather.gov");
于 2011-06-23T06:31:01.257 回答