混合HttpWebRequest的同步和异步方法

时间:2013-02-21 18:19:42

标签: c# .net asynchronous httpwebrequest

this msdn page上我读到了:

  

您的应用程序不能混合使用同步和异步方法   特别要求。如果你调用BeginGetRequestStream方法,那么   必须使用BeginGetResponse方法来检索响应。

情况恰恰相反吗?如果我调用BeginGetResponse异步读取响应,我还应该使用BeginGetRequestStream来写请求吗?

我的请求很小(100-1000个字符),响应可能很大。 杰弗里里希特的This post似乎说,在小型有效载荷的情况下,它可以同步完成(并且不设置ContentLength属性)。这是对的吗?

1 个答案:

答案 0 :(得分:0)

技术上没有,你可以同步发送请求并根据你的要求异步处理响应,但通常不建议这样做。为了保持一致性,请选择最符合您需求的方法,并使用相同的方法实现请求/响应

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