您的位置:首页 > 编程语言 > C#

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

2017-08-31 11:04 302 查看
写了一个运算过滤大文本的程序, 其中方法里边使用了多线程,并行线程等方法. 但主窗体控件直接使用此方法时,页面卡顿.所以主线程被堵塞. 代码如下, 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;
}));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: