问一个多线程的问题

kitten_scratch 2008-10-20 09:55:32
很简单的一段测试代码,发起10个线程做request,但是我在电脑上抓包却发现仅仅发出了两个request,等了几分钟都没看到发出其它的request,这是怎么回事阿?


private void button1_Click(object sender, EventArgs e)
{
int iCount = 10;

Thread[] get = new Thread[iCount];

for (int i = 0; i < iCount; i++)
{
get[i] = new Thread(new ParameterizedThreadStart(ThreadProc));
get[i].Start();
}
}

private static void ThreadProc(Object stateInfo)
{
HttpWebRequest request = HttpWebRequest.CreateDefault(new Uri("http://www.sina.com.cn")) as HttpWebRequest;
WebResponse response = request.GetResponse();
}

...全文
154 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kitten_scratch 2008-10-31
  • 打赏
  • 举报
回复
修改 System.Net.ServicePointManager.DefaultConnectionLimit = 10;
可以解决问题。
wesleyluo 2008-10-22
  • 打赏
  • 举报
回复
看不出什么问题,谁实践了的来说下...
qshzf 2008-10-22
  • 打赏
  • 举报
回复
up
ziyouzai 2008-10-21
  • 打赏
  • 举报
回复
你DEBUG看看就知道是不是10个了,抓包不是很准确的。
kitten_scratch 2008-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bbwolfcool 的回复:]
你这个太简单,会给sina的 后台识别,你写 100万个进程,sina就响应 100万个,那不是他什么 服务都要挂掉

需要模拟 IE 发socket数据 ,就算是IE发出的,可能同时访问的线程有限,appache 很容易做到


我建议你自己IIS做实验,不要拿 sina做实验
[/Quote]

这个问题我也想过,我测试过百度和其它的服务器,都是一样的。
我尝试过每两个线程间sleep 2秒,也是只发2个包。
可能觉得10个多了?我尝试发3个,但是还是老样子,不多不少,只发2个包。
很邪门。。。竟然也不报什么错误
eeixy2000 2008-10-21
  • 打赏
  • 举报
回复
线程变量还可以使用"get"关键字吗?路过,学习!
gxlqssjf 2008-10-21
  • 打赏
  • 举报
回复
可能是时间太快了,要不用sleep试试
bbwolfcool 2008-10-21
  • 打赏
  • 举报
回复
你这个太简单,会给sina的 后台识别,你写 100万个进程,sina就响应 100万个,那不是他什么 服务都要挂掉

需要模拟 IE 发socket数据 ,就算是IE发出的,可能同时访问的线程有限,appache 很容易做到


我建议你自己IIS做实验,不要拿 sina做实验

hao1hao2hao3 2008-10-20
  • 打赏
  • 举报
回复
我也想知道,期待楼下的了。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧