WP7 上的 DownloadStringTaskAsync 在检索结果时挂起
我将一堆 WP7 代码转换为使用 DownloadStringTaskAsync,而不是使用 Async CTP SP1 的 DownloadStringAsync。它不起作用,所以我把代码归结为一堆,最后得到了这两行:
var wc = new WebClient();
var result = wc.DownloadStringTaskAsync("http://www.weather.gov").Result;
如果我在 Windows 机器上使用控制台应用程序运行此方法。它按我的预期工作,我得到了一个包含 Weather.gov 内容的字符串。如果我在空白 WP7 应用程序中的 App 构造函数中运行相同的 2 行,它会在等待结果可用时挂起。
任何人都可以帮我修复这些线路,以便它们可以在电话上使用吗?或者这是 CTP 中的一个错误,我现在应该跳过它。
I converted a bunch of WP7 code to use DownloadStringTaskAsync instead of DownloadStringAsync using the Async CTP SP1. It wasn't working so I boiled down my code a bunch and ended up with these 2 lines:
var wc = new WebClient();
var result = wc.DownloadStringTaskAsync("http://www.weather.gov").Result;
If I run this method with a console app on my windows machine. Its works as I expect and I get a string with the contents of weather.gov. If I run the same 2 lines in the constructor of App in a blank WP7 app, it hangs while waiting for Result to become available.
Can anyone help me fix these lines so they will work on the phone? Or is this a bug in the CTP and I should skip it for now.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Windows Phone 在 UI 线程上返回 HTTP 请求。通过访问
Result
,您将阻塞 UI 线程,从而导致响应无法返回。考虑到您正在使用异步 CTP,为什么要阻止呢?
Windows Phone brings back HTTP requests on the UI thread. By accessing
Result
, you are blocking the UI thread, thus making it impossible for the response to come back.Considering you are using the async CTP, why would you want to block at all?