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

最新文章

  1. 服务器搭建多个tomcat服务器
  2. iOS进阶学习-数据库
  3. IOS 异步GET方法请求
  4. 【原】现有市场上H264 IPCamerad的功能
  5. jQuery 插件 flexslider 初步使用
  6. Hive UDAF开发之同时计算最大值与最小值
  7. T-SQL编程的基本语法和思想
  8. CSS1-3基礎知識
  9. Tomcat 8项目无法启动,无报错
  10. 关于MySQL Online DDL
  11. &lt;笔记&gt;Apache+PHP+MYSQL配置
  12. 5-23 CSS知识的补充
  13. $.parseJson()定义和用法
  14. SQL求出优秀、及格人数
  15. 单页面登录——编码传参(oa会对#号会进行截断)
  16. 如何将你拍摄的照片转换成全景图及六面体(PTGui)
  17. 告知你不为人知的UDP-疑难杂症和使用
  18. python第十四课--排序及自定义函数之自定义函数(案例一)
  19. 在VC中向数据库提交SLQ语句
  20. 对Prolog的感想和我写的一些教程

热门文章

  1. S3:代理模式 Proxy
  2. Python中的import和from import
  3. 51单片机 | 定时/计数器原理及结构(T0和T1)
  4. 企业级分布式存储应用与实战MogileFS、FastDFS
  5. http://www.bootcss.com/p/font-awesome/design.html
  6. DOM概念的区分:Attribute和Property, html()及.text(), .val()
  7. iOS 解决TableView reloadData时cell中图片会闪的问题
  8. iOS Masonry 查看更多 收起
  9. Vim使用个人心得
  10. 安卓TabHost+ViewPager+RadioGroup多功能模板整理