Task加入取消功能

?

参考:http://www.cnblogs.com/scy251147/archive/2013/01/04/2843875.html

  1. static
    void TaskWithCancellation()
  2. {
  3. ????var cancellationTokenSource = new CancellationTokenSource();
  4. ????var cancellationToken = cancellationTokenSource.Token; //主要用于任务取消操作的信号量设置
  5. ?
  6. ????Task t = new Task(() =>
  7. ????{
  8. ????????int i = 0;
  9. ????????while (true)
  10. ????????{
  11. ????????????i++;
  12. ????????????Thread.Sleep(1000);
  13. ????????????Console.WriteLine("this is task iteration " + i);
  14. ?
  15. ????????????//注册信号量,如果用户取消,那么将会中断在此处
  16. ????????????cancellationToken.ThrowIfCancellationRequested(); 
  17. ?
  18. ????????????Console.WriteLine("Test to see if below can be excuted...");
  19. ????????????Console.WriteLine("I am not excute");
  20. ????????}
  21. ????}, cancellationToken);
  22. ?
  23. ????t.Start();  //开始任务
  24. ?
  25. ????Thread.Sleep(1000);
  26. ?
  27. ????cancellationTokenSource.Cancel(); //取消任务
  28. ?
  29. ????try
  30. ????{
  31. ????????t.Wait();
  32. ????}
  33. ????catch (AggregateException e)
  34. ????{
  35. ????????if (e.InnerException is OperationCanceledException)
  36. ????????????Console.WriteLine("the opeartion has been canceled...");
  37. ????????else
  38. ????????????Console.WriteLine("encounter some unexpected exceptions...");
  39. ????}
  40. }
时间: 2024-08-02 15:20:07

Task加入取消功能的相关文章

JQuery实现点击关注和取消功能

点赞,网络用语,表示“赞同”.“喜爱”. 该网络语来源于网络社区的“赞”功能.送出和收获的赞的多少.赞的给予偏好等,在某种程度能反映出你是怎样的人以及处于何种状态.点赞的背后,反映出你自己.与之对应的便是取消功能.恰巧最近博主在一款APP,其中一个版块需要实现点赞和取消功能,经过思考决定用JQuery代码实现它,好了废话不多说,上干货!! 首先要引入JQuery插件 其次,我们需要定义一个div,并给它一些样式 然后就是JS代码了,如下所示 $(document).ready(function(

vue的表单编辑删除,保存取消功能

过年回来第一篇博客,可能说的不是很清楚,而且心情可能也不是特别的high,虽然今天是元宵,我还在办公室11.30在加班,但就是想把写过的代码记下来,怕以后可能真的忘了.(心将塞未塞,欲塞未满) VUE+ElementUI 的表单编辑,删除,保存,取消功能 VUE的表单 <el-form :label-position="labelPosition" label-width="120px" :model="form" ref="fo

axios取消功能的设计与实现

取消功能的设计与实现 #需求分析 有些场景下,我们希望能主动取消请求,比如常见的搜索框案例,在用户输入过程中,搜索框的内容也在不断变化,正常情况每次变化我们都应该向服务端发送一次请求.但是当用户输入过快的时候,我们不希望每次变化请求都发出去,通常一个解决方案是前端用 debounce 的方案,比如延时 200ms 发送请求.这样当用户连续输入的字符,只要输入间隔小于 200ms,前面输入的字符都不会发请求. 但是还有一种极端情况是后端接口很慢,比如超过 1s 才能响应,这个时候即使做了 200m

WPF 精修篇 长时间线程加取消功能

原文:WPF 精修篇 长时间线程加取消功能 <Grid> <Grid.RowDefinitions> <RowDefinition Height="11*"/> <RowDefinition Height="29*"/> </Grid.RowDefinitions> <StackPanel Orientation="Horizontal" Margin="0"

自定义alert 确定、取消功能

以删除为例,首先新建html <table border="1" cellpadding="0" cellspacing="0" id="myTab"> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>操作</th> </tr>

checkbox全选和取消功能

这是开发中常见的小功能,想当初我也曾对于attr和prop的不了解踩过坑. 前端工作中,常常会使用到select复选框,select复选框有一个属性checked,当使用js或者jquery控制这个属性的时候,我们会发现有时候设置attr('checked')并没有效果,可是代码明明没有问题.这时候我们应该来聊聊attr了,attr相当于getAttribute,只能操作页面上存在的属性,当复选框没有被选中时,页面上是没有checked的这个属性的,因此attr操作无效.还有一个操作属性的方法p

jQuery实现radio第一次点击选中第二次点击取消功能(转)

转载自:http://www.jb51.net/article/113730.htm 由于项目的需求,要求radio点击两次后为取消状态,不方便修改为checkbox,可以用正面的方法实现. // jquery $('input:radio').click(function(){ //alert(this.checked); // var $radio = $(this); // if this was previously checked if ($radio.data('waschecked

js实现全选与全部取消功能

function checkAll() { //把所有参与选择的checkbox使用相同的name,这里为"num_iid"    var eles = document.getElementsByName("num_iid");    var i = 0; // 如果是全选状态,则取消所有的选择    if (isSelectAll() == true) {  for ( i = 0; i < eles.length; i++) {   eles[i].ch

JQuery实现全选、反选和取消功能

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>JQ实现正.反选</title> 6 </head> 7 <body> 8 <table border="1px" style="width: 200px;margin-bott