C# 中通过CancellationTokenSource实现对超时任务的取消
来源:互联网 发布:阿里云邮箱客户端下载 编辑:程序博客网 时间:2024/06/09 00:09
在基于Task的任务执行过程中,我们通常使用CancellationTokenSource来实现任务取消,首先看一个简单的例子。
var cancelTokenSource = newCancellationTokenSource();Task.Factory.StartNew(() =>{while (!cancelTokenSource.IsCancellationRequested){Console.WriteLine(DateTime.Now);Thread.Sleep(1000);}}, cancelTokenSource.Token);Console.WriteLine("Press any key to cancel");Console.ReadLine();cancelTokenSource.Cancel();Console.WriteLine("Done");Console.ReadLine();
很多时候,除了像上例中的那样手动取消外,我们往往也要对任务设置一个预期执行时间,对超时的任务自动取消。之前一般做法是新启动一个计时器,在计时器的超时回调中执行CancellationTokenSource.Cancel方法。在.Net 4.5中,该操作得到了进一步的简化,我们可以通过在创建CancellationTokenSource时设置超时来实现这一功能。
var cancelTokenSource = newCancellationTokenSource(3000);
除此之外,也可以通过如下代码实现同样的效果。
cancelTokenSource.CancelAfter(3000);
希望以上分享对初学朋友有些帮助,谢谢!更多关注付义方技术博客:http://blog.csdn.net/fuyifang
1 0
- C# 中通过CancellationTokenSource实现对超时任务的取消
- C# 中通过CancellationTokenSource实现对超时任务的取消
- 通过CancellationTokenSource实现对超时任务的取消
- .Net 4.5中通过CancellationTokenSource实现对超时任务的取消
- C# CancellationTokenSource和CancellationToken的实现
- C#5.0 采用CancellationTokenSource方式取消Task
- Android 中对任务设置超时
- C#中 取消方向键对控件焦点的控制
- 使用CancellationTokenSource来取消Task
- 异步与并行~CancellationTokenSource对线程的作用
- 我对java中任务取消和线程中断的一点儿理解
- Linux通过改进的epoll实现对不同超时时间的数据包重传
- 【C#】46. 使用CancellationTokenSource 取消 Task
- C# 使用 CancellationTokenSource 终止线程
- nova中通过FixedIntervalLoopingCall实现的定时任务
- 通过API实现C#对硬件的控制(一)
- 通过API实现C#对硬件的控制(二)
- 通过API实现C#对硬件的控制(三)
- Unity3D表面着色器(Surface Shader)资料整合
- 三十款国外IES灯光经典素材整理n
- 三十款国外IES灯光经典素材整理i
- linxu mp3转aac, aac转mp3, mp4转mp3 mp4转aac
- ERROR 1130: Host '' is not allowed to connect to thisMySQL server
- C# 中通过CancellationTokenSource实现对超时任务的取消
- [web安全] XSS的原理与分类
- 关于PKCS5Padding与PKCS7Padding的区别
- Failed to find the style corresponding to the id 2147418306 (6 similar errors not shown)
- Java数据成员的默认值
- 南京城游记
- linux kernel ABC #2 LVM
- css在360浏览器的兼容问题
- 收藏2