一个 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数据取完插完,这是怎么回事?