多线程问题请教下

xiaotao2004 2015-11-22 10:03:02
每间隔获取不同的数据 就是指程序一点开始后就不行的循环去取POST的数据,
如果有多个网站上的数据要取是不是创建多个线程?不知道以下对不对 请指教
private void btnStart_Click(object sender, EventArgs e)

Thread getOrderThread1 = new Thread(new ThreadStart(this.GetOrders1));
getOrderThread1 .SetApartmentState(ApartmentState.STA);
getOrderThread1 .IsBackground = true;
getOrderThread1 .Start();

Thread getOrderThread2 = new Thread(new ThreadStart(this.GetOrders2));
getOrderThread2 .SetApartmentState(ApartmentState.STA);
getOrderThread2 .IsBackground = true;
getOrderThread2 .Start();

Thread getOrderThread3 = new Thread(new ThreadStart(this.GetOrders3));
getOrderThread3 .SetApartmentState(ApartmentState.STA);
getOrderThread3 .IsBackground = true;
getOrderThread3 .Start();


private void GetOrders1()
{
while (true)
{
try
{
//获取订单1方法
}
catch (ThreadInterruptedException ex)
{
}

}
}

private void GetOrders2()
{
while (true)
{
try
{
//获取2订单方法
}
catch (ThreadInterruptedException ex)
{
}

}
}
private void GetOrders3()
{
while (true)
{
try
{
//获取3订单方法
}
catch (ThreadInterruptedException ex)
{
}

}
}
...全文
226 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nomasp 2015-11-24
  • 打赏
  • 举报
回复
嗯呢线程太多也不行 多搞几个触发事件 也不能让线程一直跑你说是不是……
  • 打赏
  • 举报
回复
http://www.cnblogs.com/yuqilin/archive/2011/10/21/2218833.html
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/391863106
qldsrx 2015-11-24
  • 打赏
  • 举报
回复
每个网站一个线程去获取,100个网站就要100个线程,一一对应,因为你这里是网络I/O操作,普通的线程理论已经不适用了。你也可以直接使用异步方法来请求。
john_QQ:2335298917 2015-11-23
  • 打赏
  • 举报
回复
线程数是cpu核心数的两倍左右比较好
开宝马拖西瓜 2015-11-23
  • 打赏
  • 举报
回复
不用,Web本身就是多线程的,最好用AJAX 写在JS里面
threenewbee 2015-11-22
  • 打赏
  • 举报
回复
线程数控制在10个左右就好,再多没意义
南天空 2015-11-22
  • 打赏
  • 举报
回复
理论上说是可以的,理论上说多线程是并发执行,但是实际上还是遵循CPU的时间片轮转执行,每个线程都很忙碌或者处理时间较长的话难免出现阻塞的问题。如果单个线程可以用while循环来做,多了的话建议采用事件触发来做,起线程专门处理触发的事件,这样更合理也更有效率。

110,533

社区成员

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

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

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