程序挂起在第三次迭代(HTTPWebRequest) c#
本文关键字:HTTPWebRequest 迭代 挂起 第三次 程序 | 更新日期: 2023-09-27 18:05:14
我现在正面临一个奇怪的问题。我正在测试网站的响应时间,但当方法是循环的第三次(计时连接)它挂起:
internal class Program
{
Console.ReadLine();
loop();
}
}
挂起之前的输出是:"HTTP Response Timer",所以我认为它与正在运行的实例有关。
必须关闭响应。否则,您将达到打开连接的最大值。
使用using语句,这是关闭和处理响应最简单的方法:
using(HttpWebResponse response = (HttpWebResponse)request.GetResponse()){
// .. here some action if any
}
您没有处理响应,这意味着它挂在先前请求的连接上。然后,新的请求等待从池中获得该连接,并且阻塞,因为旧的响应仍然"拥有"该连接。只需将代码更改为:
// You weren't really using the HttpWebResponse class anyway, so why cast?
using (var response = request.GetResponse())
{
}
你真的是想递归吗?为什么不使用:
进行循环呢?while(true)
{
GetResponse();
}
之类的?