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

发布于 2024-11-16 18:31:29 字数 433 浏览 4 评论 0原文

我将一堆 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

執念 2024-11-23 18:31:29

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

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

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

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?

var result = await wc.DownloadStringTaskAsync("http://www.weather.gov");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文