.Net 4.5中通过CancellationTokenSource实现对超时任务的取消
2018-01-10 20:36
621 查看
在基于Task的任务执行过程中,我们通常使用CancellationTokenSource来实现任务取消,首先看一个简单的例子。 var cancelTokenSource = new CancellationTokenSource(); 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 = new CancellationTokenSource(3000); 除此之外,也可以通过如下代码实现同样的效果。 cancelTokenSource.CancelAfter(3000);
原文博客:http://www.cnblogs.com/TianFang/archive/2012/08/03/2620841.html
相关文章推荐
- .Net 4.5中通过CancellationTokenSource实现对超时任务的取消
- .Net 4.5中通过CancellationTokenSource实现对超时任务的取消
- C# 中通过CancellationTokenSource实现对超时任务的取消
- C# 中通过CancellationTokenSource实现对超时任务的取消
- C# CancellationTokenSource 终止线程 CancellationTokenSource实现对超时任务的取消
- 第七节:利用CancellationTokenSource实现任务取消和利用CancellationToken类检测取消异常。
- 一种利用线程池线程执行任务, 并能够结束超时任务的方法 (.NET实现)
- 使用CancellationTokenSource来取消Task
- C#5.0 采用CancellationTokenSource方式取消Task
- 【C#】46. 使用CancellationTokenSource 取消 Task
- Quartz.NET 2.0 学习笔记(3) :通过配置文件实现任务调度
- C# CancellationTokenSource和CancellationToken的实现
- C# CancellationTokenSource和CancellationToken的实现
- Quartz.NET 通过配置文件实现任务调度
- 协作式取消 CancellationTokenSource
- 通过多线程为基于 .NET 的应用程序实现响应迅速的用户
- 通过多线程为基于 .NET 的应用程序实现响应迅速的用户
- 使用Visual Studio进行单元测试-Shim类中无法找到参数包含CancellationTokenSource的方法
- 一起谈.NET技术,从数据到代码—通过代码生成机制实现强类型编程[上篇]