【问题标题】:Make synchronous Http/REST call in WP7?在 WP7 中进行同步 Http/REST 调用?
【发布时间】:2012-04-21 19:16:08
【问题描述】:

我一直在使用 Windows Phone 7 应用程序并尝试使用 HttpWebRequest.GetResponse() 进行同步 REST 调用,但编译器抱怨 GetResponse() 不可用。我在 HttpWebRequest 中找到了 BeginGetResponse() 和 EndGetResponse()。但是当我读到这两种方法用于异步调用时。

我们的设计已经实现只支持同步请求,谁能告诉我“有什么方法可以在 WP7 中进行同步调用”

【问题讨论】:

  • 不,您不能进行同步调用,因为它们会阻塞 UI。 Silverlight 不包括任何同步 I/O 调用。
  • @Gabe:如果您从工作线程执行同步请求,实际上并没有什么坏处。

标签: windows-phone-7 httpwebrequest


【解决方案1】:

您可以通过阻塞AutoResetEvent 来模拟同步请求,直到异步调用返回。 See here for a reference implementation.

【讨论】:

  • 我使用了与此非常相似的东西。有两点需要注意; 1. AutoResetEvents 没有被正确清理 - 它们应该被移动到 using () { } 块中。 2. 这些方法必须从后台线程调用。如果在 UI 线程上调用它们,它们将死锁
猜你喜欢
  • 1970-01-01
  • 2021-11-13
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 2018-05-21
相关资源
最近更新 更多