代码之家  ›  专栏  ›  技术社区  ›  Davide Icardi i3arnon

混合使用HttpWebRequest的同步和异步方法

  •  0
  • Davide Icardi i3arnon  · 技术社区  · 13 年前

    在…上 this msdn page 我读到:

    您的应用程序不能将同步和异步方法混合用于 特定请求。如果调用BeginGetRequestStream方法 必须使用BeginGetResponse方法来检索响应。

    反之亦然吗?如果我打电话 BeginGetResponse 要异步读取响应,我是否也应该使用 BeginGetRequestStream 写请求?

    我的请求很小(100-1000个字符),响应可能很大。 This post Jeffrey Richter似乎说,在小有效载荷的情况下,它可以同步完成(并且不设置 ContentLength 财产)。这是正确的吗?

    1 回复  |  直到 13 年前
        1
  •  0
  •   DiskJunky    13 年前

    严格来说不,你 可以 根据您的需求,同步发送请求并异步处理响应,反之亦然,但通常不建议这样做。为了保持一致性,选择一种最能满足您需求的方法,并使用相同的方法实现请求/响应

    例如,当您发送一个可能需要一些时间才能完成的报告请求时,您可能会混合使用方法。您希望同步发送请求,因为您希望确保在继续之前完全发送请求(例如,如果从windows应用程序发送,则考虑连接问题),但异步处理响应,因为您不想在等待响应返回时阻塞UI。尽管如此,我仍然建议您在发送/接收方面保持一致。

    推荐文章