0

这个 msdn 页面上,我读到:

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

反之亦然吗?如果我调用BeginGetResponse异步读取响应,我是否也应该使用它BeginGetRequestStream来编写请求?

我的请求很小(100-1000 个字符),响应可能很大。 Jeffrey Richter 的这篇文章似乎说,在小负载的情况下,它可以同步完成(并且无需设置ContentLength属性)。那是对的吗?

4

1 回答 1

0

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

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

于 2013-02-21T18:24:37.387 回答