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

 

相关文章:

  • 2021-07-14
  • 2021-11-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-26
  • 2021-11-06
  • 2022-01-02
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-03
  • 2022-01-28
  • 2022-12-23
相关资源
相似解决方案