在成功 HttpWebRequest 后,我无法找到取消/终止异步读取操作的方法。无法设置超时,ThreadPool.RegisterWaitForSingleObject 也不起作用。并且关闭底层套接字也不是一种选择,因为 HttpWebRequest/Reponse 都没有提供对它的访问。
编辑:
遗憾的是,Sunny 建议的这种方法仅适用于 HttpWebRequest.BeginGetResponse。对于您在 GetResponseStream() 之后获得的流,由于某种原因 RegisterWaitForSingleObject 不起作用 - 永远不会调用回调。
情况如下: 我有一个使用 HttpGetRequest 的应用程序。它是使用异步 httpwebrequest 的默认 MSDN 示例构建的。获得响应就像一种魅力。但在极少数情况下,我的 httpwebrequest 连接的服务器会忘记关闭套接字。所以我挂在 BeginRead 的无限阅读上。
在极少数情况下,其他服务器会忘记