BackgroundWorker实现的winfrom中实现异步等待加载图片显示
2015-08-07 14:27
393 查看
BackgroundWorker简介
BackgroundWorker在winfrom中有对应控件,该有三个事件:DoWork 、ProgressChanged 和 RunWorkerCompleted。在程序中调用RunWorkerAsync方法则会启动DoWork事件的事件处理,当在事件处理过程中,调用 ReportProgress方法则会启动ProgressChanged事件的事件处理,而当DoWork事件处理完成时,则会触发RunWorkerCompleted事件。您必须非常小心,确保在 DoWork 事件处理程序中不操作任何用户界面对象(否则仍会停止响应)。而应该通过 ProgressChanged和 RunWorkerCompleted 事件与用户界面进行通信。
实现waitefrom界面的窗体,改界面自己设计。
protected virtual void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker bw = sender as BackgroundWorker; for (int i = 0; i < 100; i++) { System.Threading.Thread.Sleep(1000); WaiteForm1 f = e.Argument as WaiteForm1; f.bw.ReportProgress(i); bw.ReportProgress(i); } object a = e.Argument; object b = e.Cancel; e.Result = "21"; } private void button1_Click(object sender, EventArgs e) { WaiteForm1 wa = new WaiteForm1(); //执行DoWork事件可传入执行的参数 wa.bw.RunWorkerAsync(wa); wa.bw.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork); //wa.bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted); wa.ShowDialog(this); this.Text = "2132"; }
View Code
相关文章推荐
- 开发中问题汇总之android(一)
- 博客导航
- int a[3] 和 int* a = new[3]的区别
- ssm框架整合的配置文件applicationContext.xml
- 开启页面对web app程序的支持
- redis 常用命令
- 九度OJ 题目1003:A+B
- Hdu 5358 First One (尺取法+枚举)
- JDBC剖析篇(1):java中的Class.forName()
- HDU 1114(Piggy-Bank)完全背包
- Linux——select()浅谈
- Android学习笔记——KeyEvnet、ListView以及如何增加收到消息提醒。
- 蓝牙调试
- 自定义控件,可以伸缩的textview
- Android listView的展开与收起实现折叠,及动态设置子ListView的高度
- Android 之 下拉框Spinner的使用
- hud--4251The Famous ICPC Team Again+划分树入门题
- VTune使用amplxe-cl进行Hardware Event-based Sampling Analysis 0分析
- css中选择符
- Linux 终端输入保存到一个文件中