博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BackgroundWroker使用方法备忘
阅读量:4709 次
发布时间:2019-06-10

本文共 2521 字,大约阅读时间需要 8 分钟。

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(); } } } }

转载于:https://www.cnblogs.com/yangmingyu/p/6903046.html

你可能感兴趣的文章
Seven Python Tools All Data Scientists Should Know How to Use
查看>>
cocos2d-x学习之路(二)——分析AppDelegate和HelloWorldScene文件
查看>>
Asp.net 对于服务器控件添加Client端方法
查看>>
在Salesforce中创建Approval Process
查看>>
NFS服务搭建与配置
查看>>
python计算文件md5值
查看>>
android 4.1 Emulator Skins
查看>>
Web站点防注入注意事项(转)
查看>>
第0次作业
查看>>
广播接收器——接收系统广播
查看>>
亿能测试资讯_2013-8-11
查看>>
北京地铁月度消费总金额计算(Python版)
查看>>
nginx+tomcat配置https
查看>>
[hadoop]备份
查看>>
C#中的委托和事件(续)
查看>>
python--MySql
查看>>
机器学习 - pycharm, pyspark, spark集成篇
查看>>
mysql explain 中key_len的计算
查看>>
实验一
查看>>
Linux内核--网络栈实现分析(九)--传输层之UDP协议(下)
查看>>