首页 > 代码库 > BackgroundWorker 后台进程控制窗体label、richtextbook内容刷新
BackgroundWorker 后台进程控制窗体label、richtextbook内容刷新
昨天写了一个从文章中提取关键词的程序,写完处理的逻辑后又花了好几个小时在用户友好性上。加了几个progressBar,有显示总进度的、有显示分布进度的。。因为程序要跑好几个小时才能执行好,只加个总进度的话感觉不太明显。一个label,显示当先操作的具体内容,还有个richtextbox显示出所有操作哦。。
直接扔代码咯,接好:
1 this.Invoke(new MethodInvoker(delegate() { label1.Text = "正在处理... "; label1.Refresh(); }));
把它放在backgroundWorker1_DoWork()就能实现后台进程管理label内容。
在对richtextbox操作是,我起初使用的也是这个代码,但运行时才发现,richtextbox的光标不会自动下移。所以还要加点代码:
1 this.Invoke(new MethodInvoker(delegate() {2 richTextBox1.AppendText(text); 3 richTextBox1.SelectionStart = richTextBox1.Text.Length;4 richTextBox1.ScrollToCaret();}));
那个.Refresh()被我省略掉了,但运行效果没有变化耶~~
附上个效果图吧:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。