我现在遇到了一个问题.我的操作步骤:
1.将excel转换成低版本的excel(8.0); //这一步骤,单独测试所需要的时间是 22s-30s之间.
2.将低版本的excel导入到dataset; //这一步,单独测试所需的时间7S;Excel:有4.7W条数据.在我测试步骤1和步骤2一起的所花的时间的时候居然要1分半到2分钟之间的样子.
但是我调试的时候他们所分别花的时间都是正常的(分别是25s和7s);
我非调试两个一起运行就要2分钟.有没人能够指点下,小弟感谢了!我测试了半天的感觉好像是大量资源回收造成的效率低下.如果是按照下面的程序运行的,点击对话框,加起来总的时间不过1分钟. 求解.            DateTime time1 = DateTime.Now;
            XlsSource = FileToExcel(FileName); //这里是excel转换成低版本的execl
            DateTime time2 = DateTime.Now;
            MessageBox.Show((time2 - time1).ToString());            time1 = DateTime.Now;
            InfoDataSet = GetDataSetFromFile(XlsSource); //低版本excel导入到dataset
            time2 = DateTime.Now;
            MessageBox.Show((time2 - time1).ToString());            time1 = DateTime.Now;
            InitTable(TableName, InfoDataSet.Tables[0]);
            time2 = DateTime.Now;
            MessageBox.Show((time2 - time1).ToString());            time1 = DateTime.Now;
            ImportData(InfoDataSet, TableName);
            time2 = DateTime.Now;
            MessageBox.Show((time2 - time1).ToString());            time1 = DateTime.Now;
            RunProcedure();
            DateTime time2 = DateTime.Now;
            MessageBox.Show((time2 - time1).ToString());

解决方案 »

  1.   

    GetDataSetFromFile 方法看看. 
    调试的时间应该准些.
      

  2.   

    找到解决办法了.呵呵
    FileToExcel(FileName)里面
    Excel app.Quit()的时候线程暂停1s等excel关闭了就好了....
      

  3.   

    计时方式换一下不好么   System.Diagnostics.Stopwatch sw = new Stopwatch();
                    sw.Start();
                    代码
       XlsSource = FileToExcel(FileName); //这里是excel转换成低版本的execl                sw.Stop();
                    Console.WriteLine("转换成低版本" + sw.ElapsedMilliseconds.ToString());                sw.Reset();
                    sw.Start();
                      代码InfoDataSet = GetDataSetFromFile(XlsSource); //低版本excel导入到dataset
                    sw.Stop();
                    Console.WriteLine("低版本excel导入" + sw.ElapsedMilliseconds.ToString());
      

  4.   

    这尼玛我也太土鳖了,第一次知道stopwatch