一个winform中多线程的例子
2013-04-14 00:17
405 查看
先看效果
View Code
View Code
using System; using System.Threading; using System.Windows.Forms; namespace WinformApp { public partial class Form1 : Form { private CancellationTokenSource _cts; public Form1() { InitializeComponent(); } /// <summary> /// 从1累加到指定的值,为了让该方法支持取消操作所以需要CancellationToken参数 /// </summary> /// <param name="countTo">累加到的指定值</param> /// <param name="ct">取消凭证</param> private void CountTo(int countTo, CancellationToken ct) { int sum = 0; for (; countTo > 0; countTo--) { if (ct.IsCancellationRequested) { break; } sum += countTo; //Invoke方法用于获得创建lbl_Status的线程所在的上下文 this.Invoke(new Action(()=>lbl_Status.Text = sum.ToString())); Thread.Sleep(200); } } private void btn_Count_Click(object sender, EventArgs e) { _cts = new CancellationTokenSource(); ThreadPool.QueueUserWorkItem(state=>CountTo(int.Parse(txt_CountTo.Text),_cts.Token)); } private void btn_Cancel_Click(object sender, EventArgs e) { if (_cts != null) _cts.Cancel(); } private void btn_Pause_Click(object sender, EventArgs e) { } } }
相关文章推荐
- Winform 的一个多线程绑定DataGrid数据源的例子
- 用Winform 利用多线程做的一个网站压力测试小工具(带源码)
- 一个简单的Linux多线程例子 带你洞悉互斥量 信号量 条件变量编程
- 关于多线程程序中使用volatile关键字的一个小例子
- 关于多线程的一个例子(UI实时显示)
- [导入][原创]一个通过BackgroundWorker实现WinForm异步操作的例子
- C# 一个多线程操作控件的例子.#######
- 一个例子玩转linux多线程问题(创建 执行 条件变量 ......)
- 收藏一个winform例子
- C# 一个简单的多线程例子
- WinForm中 事件 委托 多线程的应用【以一个下载进度条为例】
- Python中尝试多线程编程的一个简明例子
- [转]一个简单的Linux多线程例子 带你洞悉互斥量 信号量 条件变量编程
- 关于多线程的一个例子(UI实时显示)
- php pthreads 多线程扩展的使用:一个较为稳定例子。
- 一个关于多线程的简单例子(两种实现方法)
- C#/.net学习-13-一个多线程的摇奖winform小程序
- [ZZ]一个通过BackgroundWorker实现WinForm异步操作的例子
- Java一个多线程的经典例子
- 一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。