C#BackgroundWorker组件
2013-11-18 16:15
169 查看
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace ProgessBarTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { this.btn_Calculate.Enabled = false;//设置计算按键不可用 this.tb_result.Text = string.Empty;//清空文本框内容 this.btn_cancel.Enabled = true; //设置取消按键可用 this.progressBar1.Value = 0; //启动后台线程,实例化一个CalcInput对象传给新线程 backgroundWorker1.RunWorkerAsync( new CalcInput( int.Parse(this.tb_x.Text), int.Parse(this.tb_y.Text) ) ); } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { //从DoWorkEventArgs类型参数e的Argument属性得到传入的对象实例 CalcInput input = (CalcInput)e.Argument; //模拟执行时间 for (int i = 0; i < 10; i++) { input.x += input.y; Thread.Sleep(300); if(backgroundWorker1.CancellationPending) { e.Cancel = true; return; } } //将计算结果交给参数e的Result属性 e.Result = input.x; } private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { this.btn_Calculate.Enabled = true;//设置计算按键不可用 if (e.Cancelled) { this.tb_result.Text = "计算中断"; } else { this.tb_result.Text = e.Result.ToString(); } this.btn_cancel.Enabled = false; this.progressBar1.Value = 100; } private void btn_cancel_Click(object sender, EventArgs e) { backgroundWorker1.CancelAsync(); } } }
相关文章推荐
- c#利用office组件导出
- C# 互操作性入门系列(四):在C# 中调用COM组件
- [C#应用]得到组件事件的委托列表
- C# ASP.NET 权限设计 完全支持多数据库多语言包的通用权限管理系统组件源码
- C# Tabcontrol组件怎么(切换)显示Form窗体
- 用 C# 做组件设计时的事件实现方法讨论
- C#对Excel的操作(可以做报表导出的组件)
- C#组件属性说明
- C# 注册COM+组件步骤
- 打通 C++ 和 C# 关于 COM 组件互相调用的任督二脉
- C#.NET 权限管理系统组件 - 大数据只获取更新部分数据列的标准例子
- Winform(C#.NET)自动更新组件的使用及部分功能实现(续)
- C#调用iTextSharp组件生成PDF文件, 在VS2005下已经调试通过!
- c#中异步基于消息通信的完成端口的TCP/IP协议的组件实现(客户端-源代码)
- VS.Net C# 调用 Active 组件
- [转]详解C#组件开发的来龙去脉
- C#播放Flash 组件
- C++ 调用 C#的COM组件
- c#中异步基于消息通信的完成端口的TCP/IP协议的组件实现(源代码) 客户端
- C#实现的 快速查找通用组件 YHSoft.QuickFind