不能重新调用BeginGetRequestStream/BeginGetResponse,而之前的调用仍在进行中

本文关键字:调用 进行中 新调用 不能 BeginGetRequestStream BeginGetResponse | 更新日期: 2023-09-27 17:49:37

我在任务工厂内调用httpwebresponse,执行1次后抛出异常
Cannot re-call BeginGetRequestStream/BeginGetResponse while a previous call is still in progress
我的代码如下:

for (int i = 0; i < tsk.Length; i++) 
{ 
   tsk[i] = Task.Factory.StartNew((object obj) => 
   { 
        System.Diagnostics.Stopwatch watch = Stopwatch.StartNew();
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        watch.Stop(); 
   }, i);
}

如何解决这个问题

不能重新调用BeginGetRequestStream/BeginGetResponse,而之前的调用仍在进行中

您一次又一次地使用相同的HttpRequest对象:

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

你必须重新创建它每次作为单独的线程试图重用HTTP连接并发并得到异常:

HttpWebRequest request = WebRequest.Create("url");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();