c# 运行大运算程序主窗体卡掉的解决
2017-08-31 11:04
302 查看
写了一个运算过滤大文本的程序, 其中方法里边使用了多线程,并行线程等方法. 但主窗体控件直接使用此方法时,页面卡顿.所以主线程被堵塞. 代码如下, splitfile 这个方法运行时页面卡顿,阻塞了主线程
改成这样:
涉及到方法里边访问控件的问题,所以要使用专门为ui 主线程留下的invoke
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#程序只允许运行一个实例的几种方法详解
- C# .NET Winform等程序一运行就闪退 不同环境 换到其他电脑,例如XP之类的解决方法。
- C# 关闭登录窗体,进入主窗体后,主窗体关闭,程序进程仍在运行的问题
- 解决C#程序只允许运行一个实例的几种方法详解
- 解决C#编写的程序无法在xp系统上运行的问题
- C#程序运行不了CLR20R3解决方法
- 解决C# WINFORM程序只允许运行一个实例的几种方法详解
- 解决C#程序只允许运行一个实例的几种方法详解
- c#程序运行时,不弹出DOS窗口,但窗体执行
- C#将exe运行程序嵌入到自己的winform窗体中
- C# Winfrom 窗体嵌入 Word 窗体 ,客户端运行报错解决方法 。
- Qt程序最小化运行,还原后窗体不刷新的问题解决
- C#程序在server 2003 运行错误的解决办法
- C# 关闭登录窗体,进入主窗体后,主窗体关闭,程序进程仍在运行的问题
- c#程序在部分电脑运行异常解决方法(System.Runtime.InteropServices.COMException (0x80070422): 无法启动服务)
- C#将exe运行程序嵌入到自己的winform窗体中
- C#窗体程序,当窗口关闭后,进程无法关闭解决方法
- c#控制台程序运行时隐藏窗体方法
- c# 控制台程序调用直接运行一个新程序和隐藏自己的窗体(转)
- c#程序运行报错提示相应的设置outputpath和assemblyname属性的问题解决办法!