码迷,mamicode.com
首页 > Windows程序 > 详细

c# 运行大运算程序主窗体卡掉的解决

时间:2017-08-31 12:50:25      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:tar   path   show   hand   handler   string   handle   div   一个   

     写了一个运算过滤大文本的程序, 其中方法里边使用了多线程,并行线程等方法.  但主窗体控件直接使用此方法时,页面卡顿.所以主线程被堵塞. 代码如下, splitfile 这个方法运行时页面卡顿,阻塞了主线程

  private void button3_Click(object sender, EventArgs e)
        {
            marqueeProgressBarControl1.Visible = true;
            marqueeProgressBarControl1.Properties.ShowTitle = true;
            marqueeProgressBarControl1.Text = "数据处理中...请稍后...";
           string file = txtPath.Text.Trim();
           SpiltFile(file, 1);
          marqueeProgressBarControl1.Visible = false;
        }

改成这样:

    marqueeProgressBarControl1.Visible = true;

            marqueeProgressBarControl1.Properties.ShowTitle = true;
            marqueeProgressBarControl1.Text = "数据处理中...请稍后...";
           
            Thread thread = new Thread(new ThreadStart(Run)); thread.Start();

涉及到方法里边访问控件的问题,所以要使用专门为ui 主线程留下的invoke

   this.Invoke(new EventHandler(delegate {
                this.marqueeProgressBarControl1.Visible = false;
            }));

 

c# 运行大运算程序主窗体卡掉的解决

标签:tar   path   show   hand   handler   string   handle   div   一个   

原文地址:http://www.cnblogs.com/zuochanzi/p/7457250.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!