关于HttpWebRequest并发的纠结问题,请各位帮助
假设Winform程序所在的机器带宽足够,CPU、内存配置相当。
业务处理:顺序的执行HTTP请求和一系列的数据处理(例如:向服务器A发送HTTP请求后,等待返回数据,处理返回的数据后,再向服务器B发送请求,然后接收返回数据,再对返回的数据进行处理……,直到返回最终数据处理结果)。
问题1
需要开 500 到 1000 个“线程”来做业务处理,每个线程处理的HTTP请求数量和处理的数据量可能不同,完成任务时间长短可能不同。想要实现 500 到 1000 个“线程”同时开始 并发的执行应该怎么做比较合理呀?
问题2
如果将以上实现的功能封装成DLL,导出一个方法,调用时,传入2个参数:
1.HTTP请求地址(可以是多个)
2.回调函数
每调用一次DLL就自动开一个线程来做业务处理,接收数据由回调函数来完成。
请问这该如何实现呀?
谢谢各位的帮助。
[解决办法]
private void btn_Open_Click(object sender, EventArgs e)
{
int n = 5 //线程数
openThread = new Thread[n];//为线程申请资源,确定线程总数
ThreadStart startOpenThread = new ThreadStart(Open); //运行方法
for (int i = 0; i < n; i++)//开启指定数量的线程数
{
openThread[i] = new Thread(startOpenThread);//指定线程起始设置
openThread[i].Name = "openThread" + i.ToString();
openThread[i].IsBackground = true;
openThread[i].Start();//逐个开启线程
Thread.Sleep(10);
}
}
void Open()
{
//你要做的事情
}