10个线程,越跑越慢,咋回事???

sgbaobao 2010-11-18 01:36:27
一个 timer1,每次循环会启动10个线程,如下:
private void timer1_Tick(object sender, EventArgs e)
{

Thread1 = new Thread(this.intoDB1);
Thread1.Start();

Thread2 = new Thread(this.intoDB2);
Thread2.Start();

Thread3 = new Thread(this.intoDB3);
Thread3.Start();

Thread4 = new Thread(this.intoDB4);
Thread4.Start();

Thread5 = new Thread(this.intoDB5);
Thread5.Start();

Thread6 = new Thread(this.intoDB6);
Thread6.Start();

Thread7 = new Thread(this.intoDB7);
Thread7.Start();

Thread8 = new Thread(this.intoDB8);
Thread8.Start();

Thread9 = new Thread(this.intoDB9);
Thread9.Start();

Thread10 = new Thread(this.intoDB10);
Thread10.Start();
}

intoDB1到intoDB10的方法内容相同,如下:

private void intoDB1()
{
//用sql语句取出MySql里200条数据
//再用while循环插入到SqServer数据库里
//然后结束此线程
Thread1.Abort();
}

首先设置timer1间隔为30秒。程序运行后,开始10个线程都能够完成自己操作,可随着运行时间的延长,慢慢30秒就不够用了,程序就会报错。

最后去掉timer1,人工单击按钮来启动运行这10个线程,测试发现,随着次数的增多,这10个线程越来越慢,开始取200数据插200数据共用10几秒,最后执行一次需要一分多钟才能把200数据取完插完,这是怎么回事?
...全文
446 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
justiceyves 2010-11-18
  • 打赏
  • 举报
回复
不知道你说的是啥、。
doubleu2005 2010-11-18
  • 打赏
  • 举报
回复
LZ怎么保证每个线程都正常结束呢
tanrenzong1986 2010-11-18
  • 打赏
  • 举报
回复
线程也需要使用内存的,而且在新线程开始后也不保证旧线程释放,这样内存占用越来越多,电脑当然越来越慢。
hookyzlr 2010-11-18
  • 打赏
  • 举报
回复
这是在无线开辟新线程,
xrongzhen 2010-11-18
  • 打赏
  • 举报
回复
每次启动10个进程,并不是时刻都只有10个进程 在前10个没执行完时,后面的又开始了,累积起来就多了
ycg_893 2010-11-18
  • 打赏
  • 举报
回复
做线程池,规定只能10个线程,就不会越来越多了,最后你再看看线池内有多少个等执行线程就知道你现在的方法
whrspsoft3723 2010-11-18
  • 打赏
  • 举报
回复
timer里启动多线程 ,有意思
绿色夹克衫 2010-11-18
  • 打赏
  • 举报
回复
LZ弄这么多线程一起跑,是为了能快一点么?
编程爱好者L 2010-11-18
  • 打赏
  • 举报
回复
指明要结束的线程
zhgroup 2010-11-18
  • 打赏
  • 举报
回复
楼上的都说了,你创建的线程是越来越多,
就类似于
while(true)
{
do....
}
WesLon 2010-11-18
  • 打赏
  • 举报
回复
线程太多,影响电脑运行了,上面有人说了,要释放资源了.
wxm3630478 2010-11-18
  • 打赏
  • 举报
回复
兔子-顾问 2010-11-18
  • 打赏
  • 举报
回复
有任何一个线程的执行时间大于你定时器周期,就会越来越多的产生线程,最终线程太多当然很慢。
bloodish 2010-11-18
  • 打赏
  • 举报
回复
你这哪里止10个线程?每次Time_Tick都新增10个线程,而且你也无法保证前一次的10个都已经结束.

思路有问题.
louti 2010-11-18
  • 打赏
  • 举报
回复
释放数据库访问资源了吗

111,129

社区成员

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

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

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