BackgroundWroker使用方法备忘
来源:互联网 发布:管家婆软件好用吗 编辑:程序博客网 时间:2024/06/08 07:25
using System;using System.ComponentModel;using System.Windows.Forms;using System.Threading;namespace WindowsFormsApplication1{ publicpartialclass Form1 : Form { public Form1() { InitializeComponent(); worker =new BackgroundWorker(); worker.DoWork+=new DoWorkEventHandler(worker_DoWork); worker.ProgressChanged+=new ProgressChangedEventHandler(worker_ProgressChanged); worker.RunWorkerCompleted+=new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); worker.WorkerReportsProgress =true; //允许进度显示 worker.WorkerSupportsCancellation =true; //允许运行中取消 } BackgroundWorker worker; privatevoid Form1_Load(object sender, EventArgs e) { } privatevoid worker_DoWork(object sender, DoWorkEventArgs e) { for (int i =0; i <300; i++) { Thread.Sleep(100); //每隔一段时间就向主线程报告进度,以便更新进度条。 //多数情况下,你只需要发送一个整数去更新即可 worker.ReportProgress(i/3); if (worker.CancellationPending) { //如果任务被取消 e.Cancel =true; worker.ReportProgress(0); return; } } } privatevoid worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { pbarThis.Value = e.ProgressPercentage; lblText.Text ="已经处理了 "+ pbarThis.Value.ToString() +"%"; } privatevoid worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled) { lblText.Text ="任务取消"; } elseif (e.Error !=null) { lblText.Text ="发生错误"; } else { lblText.Text ="任务完成"; } btnStart.Enabled =true; btnCancel.Enabled =false; } privatevoid btnStart_Click(object sender, EventArgs e) { btnStart.Enabled =false; btnCancel.Enabled =true; //通知主线程开始进行数据处理 worker.RunWorkerAsync(); } privatevoid btnCancel_Click(object sender, EventArgs e) { if (worker.IsBusy) { worker.CancelAsync(); } } }}
阅读全文
0 0
- BackgroundWroker使用方法备忘
- git使用方法备忘
- linux-Vi使用方法(备忘)
- mybatis generator使用方法备忘
- gensim的使用方法(备忘)
- Delphi 文件使用方法(备忘)
- XML和XPath使用方法备忘
- cocos2dx 帧动画使用方法备忘
- 欢迎使用CSDN-markdown编辑器[使用方法备忘]
- XML和XPath使用方法备忘(转载)
- 匿名方法的一些使用方法备忘
- tar、gzip、unzip命令的详细使用方法备忘
- tar、gzip、unzip命令的详细使用方法备忘
- tar、gzip、unzip命令的详细使用方法备忘
- 【代码备忘】MFC遍历文件夹、删除文件夹、CTreeCtrl使用方法
- 备忘
- 备忘
- 备忘
- Oracle索引(Index)创建使用
- Android中AIDL的基本用法
- 大数幂模运算
- kindeditor的使用
- 水平RecyclerView中Item中含有EditText问题
- BackgroundWroker使用方法备忘
- 欢迎使用CSDN-markdown编辑器
- 增强学习(Reinforcement Learning and Control)
- Servlet与Jsp对比区别
- PeerConnection, WebRtcSession, VideoTrack的关系
- activiti数据库表结构剖析
- sohu高速源
- java 调用浏览器学习
- 匿名方法的一些使用方法备忘