-
C#教程之C# Task Cancel,CancellationTokenSource.IsCancellationRequested
本站最新发布 C#从入门到精通
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
试听地址 https://www.xin3721.com/eschool/CSharpxin3721/
public partial class Form1 : Form { CancellationTokenSource cts = new CancellationTokenSource(); public Form1() { InitializeComponent(); } private void StartClick(object sender, EventArgs e) { Task testTask = Task.Run(() => { while (!cts.IsCancellationRequested) { string str = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}"; BeginInvoke(new Action(() => { listBox1.Items.Add(str); })); Thread.Sleep(500); } }, cts.Token); } private void CancelClick(object sender, EventArgs e) { cts.Cancel(); string str = "Task cancelled"; listBox1.Items.Add(str); } }
public partial class Form1 : Form { CancellationTokenSource cts = new CancellationTokenSource(); List<string> lbList = new List<string>(); public Form1() { InitializeComponent(); listBox1.DataSource = lbList; } private void StartClick(object sender, EventArgs e) { Task testTask = Task.Run(() => { while (!cts.IsCancellationRequested) { string str = $"{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}"; BeginInvoke(new Action(() => { lbList.Add(str); listBox1.DataSource = null; listBox1.DataSource = lbList; })); Thread.Sleep(500); } }, cts.Token); } private void CancelClick(object sender, EventArgs e) { cts.Cancel(); string str = "Task cancelled"; BeginInvoke(new Action(() => { lbList.Add(str); listBox1.DataSource = null; listBox1.DataSource = lbList; })); } }
public partial class Form1 : Form { CancellationTokenSource cts = new CancellationTokenSource(); List<string> lbList = new List<string>(); public Form1() { InitializeComponent(); listBox1.DataSource = lbList; } private void StartClick(object sender, EventArgs e) { Task testTask = Task.Run(() => { while (!cts.IsCancellationRequested) { AddContentToLBx(); } }, cts.Token); } int i = 0; private void AddContentToLBx() { for(i=0;i<10000;i++) { string str = $"i={i},{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}"; BeginInvoke(new Action(() => { lbList.Add(str); listBox1.DataSource = null; listBox1.DataSource = lbList; })); Thread.Sleep(500); if (cts.IsCancellationRequested) { break; } } } private void CancelClick(object sender, EventArgs e) { cts.Cancel(); string str = $"i={i},Task cancelled"; BeginInvoke(new Action(() => { lbList.Add(str); listBox1.DataSource = null; listBox1.DataSource = lbList; })); } }
int i = 0; List<string> lbList = new List<string>(); private bool IsCancelled { get; set; } public Form1() { InitializeComponent(); listBox1.DataSource = lbList; } //Start or restart private void StartClick(object sender, EventArgs e) { IsCancelled = false; if(!IsCancelled) { Task testTask = Task.Run(() => { AddContentToLBx(); }); } } private void AddContentToLBx() { while (i < 10000) { if (!IsCancelled) { string str = $"i={i},{DateTime.Now.ToString("yyyyMMddHHmmssffff")},{Guid.NewGuid().ToString()}"; BeginInvoke(new Action(() => { lbList.Add(str); listBox1.DataSource = null; listBox1.DataSource = lbList; })); Thread.Sleep(500); } else { break; } i++; } } private void CancelClick(object sender, EventArgs e) { IsCancelled = true; string str = $"i={i},Task cancelled"; BeginInvoke(new Action(() => { lbList.Add(str); listBox1.DataSource = null; listBox1.DataSource = lbList; })); }
栏目列表
最新更新
C# 面向对象
假设客车的座位数是9行4列,使用二维数
C#基于接口设计三层架构Unity篇
C#线程 入门
C#读取静态类常量属性和值
C# 插件式编程
C# 委托与事件有啥区别?
C#队列学习笔记:队列(Queue)和堆栈(Stack
linq 多表分组左连接查询查询统计
C#队列学习笔记:MSMQ入门一
C# 在Word中添加Latex 数学公式和符号
inncheck命令 – 检查语法
基于UDP的服务器端和客户端
再谈UDP和TCP
在socket编程中使用域名
网络数据传输时的大小端问题
socket编程实现文件传输功能
如何优雅地断开TCP连接?
图解TCP四次握手断开连接
详细分析TCP数据的传输过程
SqlServer 利用游标批量更新数据
BOS只读状态修改
SQL Server等待事件—PAGEIOLATCH_EX
数据库多行转换为单一列
获取数据表最后最后访问,修改,更新,
计算经历的时间
SQL查询结果自定义排序
修改数据库默认位置
日期简单加或减
从日期获取年,月或日