我正在尝试创建一个执行多个线程的应用程序,并且在该线程中将存在与网站的连接。我一直在阅读网站(因为它不断发送信息)。
问题是只有一个线程似乎能够继续从网站读取,其他线程看起来似乎无法读取流。当我设置断点时,工作线程击中它但其他人不知道吨。所以我查看了Threads概述窗口,看到那里的另一个线程,以及它在“睡眠,等待或加入”的位置。它也没有出现在try catch块中。
我不知道如何解决这个问题,提前感谢您的帮助。
HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(domain);
request.Credentials = new NetworkCredential(Username, Password);
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
using (response)
{
Stream resStream = response.GetResponseStream();
using (resStream)
{
int count;
do
{
count = resStream.Read(buf, 0, buf.Length);
// make sure we read some data);
if (count != 0)
{
string tempString = Encoding.ASCII.GetString(buf, 0, count);
QueueResponse(tempString);
}
catch (Exception e)
{
Console.WriteLine("Exception occured");
}
Thread.Sleep(1000);
} while (count > 0);
}
}
答案 0 :(得分:1)
您可能想要检查两件事:
ServicePointManager
强加的连接限制(请参阅Trying to run multiple HTTP requests in parallel, but being limited by Windows (registry))