werqxz 2016-04-20 09:32 采纳率: 0%
浏览 2734

c#,winform,为防止界面卡死,新建线程运行耗时算法,速度骤降

原本单线程下3分钟,创建个线程这么做之后要35分钟,各位大哥大姐行行好,告诉我这个怎么破?

 //齐套分析按钮事件
        private void btnQtfx_Click(object sender, EventArgs e)
        {
            qtfxStart();            //启动进度条
            if (gridView1.RowCount > 0)
            {
                int[] selected = this.gridView1.GetSelectedRows();          //得到选中行
                calculateThread = new Thread(new ParameterizedThreadStart(qtfx));
                //calculateThread.Priority = ThreadPriority.Highest;
                calculateThread.Name = "分析线程";
                calculateThread.Start(selected);                //把选中行索引传到qtfx方法
            }
            else
            {
                MessageBox.Show("没有数据");
            }
        }
        //齐套分析
        private void qtfx(Object o)
        {

            int[] selected = (int[])o;          //得到传进来的参数
            AnalysisManage am = new AnalysisManage(dt_storey, dt_onway);
            DateTime begin = DateTime.Now;      
            DataTable dt = am.analysis(selected);                         //齐套分析,问题在这一句,最耗时
            CallbackWithDT qt = new CallbackWithDT(qtfxDone);
            this.Invoke(qt, new object[] { dt });                           //把分析结果传到“窗体线程”
            DateTime end = DateTime.Now;
            MessageBox.Show((end - begin).ToString());
        }
  • 写回答

1条回答

  • threenewbee 2016-04-20 11:49
    关注

    qtfxDone函数怎么写的,am.analysis怎么实现的。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?