我在timer1_Tick事件里面获取了一个库的所有表,然后根据这些表,每个表生成了一个线程,然后再根据每个线程,去插入一条数据的时候,又分了每插一条数据一个线程,现在抛出上面的异常,是什么原因??

解决方案 »

  1.   


    为何要这么多线程呢?前台一个线程,后台处理,尽量写到一个线程里.
    抛出此异常,一般是你的代码逻辑,导致死循环!
    ----------
    三易通软件(服装进销存,服装进销存软件,服装进销存管理软件,服装进销存管理系统,服装店管理软件,服装店管理系统,服装销售管理软件,服装销售管理系统,服装零售管理软件,服装零售管理系统,服装店软件,服装店收银软件):http://www.3etsoft.cn
      

  2.   

    timer1_Tick事件中的方法AddAllTableData(int number, ArrayList arraylist)
    AddAllTableData中的方法
     foreach (var tbname in arraylist)
                    {
                        ThreadClassFun myThreadFun = new ThreadClassFun(number, tbname.ToString(), IsManyThread);
                        Thread myThread = new Thread(new ThreadStart(myThreadFun.ThreadFunInsert));
                        myThread.Start();
                        Thread.Sleep(300);
                    }myThreadFun.ThreadFunInsert类
    public void ThreadFunInsert()
            {
                int iResult = 0;
                int count = 0;            for (int i = 0; i < this.Number; i++)
                {
                    //判断是否表线程中加子线程
                    if (this.IsManyThread)
                    {
                        try
                        {
                            Thread myThread = new Thread(new ThreadStart(delegate()
                            {
                                iResult = CommonService.AddTableData(this.Tbname);
                                if (iResult > 0)
                                {
                                    count++;
                                }
                                Thread.Sleep(100);
                            }));
                            myThread.Start();
                            //Thread.CurrentThread.j
                        }
                        catch (Exception ex)
                        {
                            LogHelper.SaveException(ex);
                        }
                        
                    }
                    else
                    {
                        iResult = CommonService.AddTableData(this.Tbname);
                        if (iResult > 0)
                        {
                            count++;
                        }
                    }       
                }            CommonService.WriteLog(count, this.Tbname, DateTime.Now, "添加数据成功");        }
    哪里有问题呢??
      

  3.   

    是sqlserver吗,数据集大于2G,会溢出
      

  4.   

    sqlserver是的,估计里面有个死循环,Sleep一分钟