首页 > Windows开发 > 详细

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

时间:2017-08-31 12:17:52      阅读:327      评论:0      收藏:0      [点我收藏+]

     写了一个运算过滤大文本的程序, 其中方法里边使用了多线程,并行线程等方法.  但主窗体控件直接使用此方法时,页面卡顿.所以主线程被堵塞. 代码如下, 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# 运行大运算程序主窗体卡掉的解决

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!