咨询区

  • Bruno Lopes

我想实现一个可以在延迟 Xms 后执行一个 task 的需求,并要求能够实现在 xms 之前取消 task 的执行,我的参考代码如下:

var _cancelationTokenSource = new CancellationTokenSource();var token = _cancelationTokenSource.Token;
Task.Factory.StartNew(() =>{token.ThrowIfCancellationRequested();Thread.Sleep(100);token.ThrowIfCancellationRequested();}).ContinueWith(t =>{token.ThrowIfCancellationRequested();DoWork();token.ThrowIfCancellationRequested();}, token);

虽然用 Sleep + ContinueWith 的方式可以实现,但我觉得还不够完美,请问是否有更好的办法?

回答区

  • valentasm

你可以用 WaitOne 的另一个重载方法: Token.WaitHandle.WaitOne(int32 milliseconds), 它比Thread.Sleep(xxx)

如何延迟一个 Task 的执行 ?相关推荐

  1. .NET 中 如果一个Task A正在await另一个Task B,那么Task A是什么状态

    .NET 中 如果一个Task A正在await另一个Task B,那么Task A是什么状态?答案是:WaitingForActivation 新建一个.NET Core控制台程序,输入如下代码: ...

  2. 一个 Task 不够,又来一个 ValueTask ,真的学懵了!

    一:背景 1. 讲故事 前几天在项目中用 MemoryStream 的时候意外发现 ReadAsync 方法多了一个返回 ValueTask 的重载,真是日了狗了,一个 Task 已经够学了,又来一个 ...

  3. Springboot中上一个定时任务没执行完,是否会影响下一个定时任务执行分析及结论

    本文将用测试代码验证:定时任务阻塞问题. 在springboot中使用定时任务的步骤 在启动类上加上注解:@EnableScheduling,表示允许定时任务执行 定时任务需要在类上加上@Compon ...

  4. Spring task定时任务执行一段时间后莫名其妙停止的问题

    前因: 我写了一个小项目,主要功能是用Spring task定时任务每天定时给用户发送邮件.执行了几个月一直没有问题,前几天,莫名其妙的突然不再发送邮件了. 只好花费一些时间来查看到底是什么原因造成的 ...

  5. shell脚本中判断上一个命令是否执行成功

    2018-12-21 shell中使用符号"$?"来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败. 结合if-else语句实现判断上一个命令是否执行成功 示例如 ...

  6. 一个sql的执行过程详解

    作者:猿来是八阿哥 链接:https://www.jianshu.com/p/e2926d6a808f 一个sql的执行过程 一. 组成部分 PDO_MYSQL is a driver that im ...

  7. 查询优化器内核剖析第四篇:从一个实例看执行计划

    查询优化器内核剖析第四篇:从一个实例看执行计划 系列文章索引: 查询优化器内核剖析第一篇 查询优化器内核剖析第二篇:产生候选执行计划&执行计划成本估算 查询优化器内核剖析第三篇:查询的执行与计 ...

  8. 假定Csomething是一个类,执行下面这些语句后,内存里创建了几个Csomething对象

    假定Csomething是一个类,执行下面这些语句后,内存里创建了几个Csomething对象 Csomething a(); Csomething b(2); Csomething c[3]; Cs ...

  9. sqlite 0转换为bit_Cisco Talos在SQLite中发现了一个远程代码执行漏洞

    思科Talos的研究人员在SQLite中发现了一个use-after-free() 的漏洞,攻击者可利用该漏洞在受影响设备上远程执行代码. 攻击者可以通过向受影响的SQLite安装发送恶意SQL命令来 ...

最新文章

  1. HCNE题库附件、可下载
  2. ZVM – 记VMP保护代码还原工程
  3. python语言教程-Python 基础教程
  4. 初学Ajax相关知识
  5. 大脑构造图与功能解析_解析地轨、隐藏轨推拉门及折叠门的构造做法,收藏学习...
  6. h5配合css和js如何自定义单选框
  7. 去掉viewstate保持在页面中的一大串字符的方法
  8. 计算机丢失pcdsp.dll,计算机libcef.dll丢失
  9. 进度条(页面刷新)【原创】
  10. cmake 简介-初识
  11. Qt 学习之路 :信号槽
  12. yum的更多用法和源码编译安装apache
  13. APP加壳原理及常用脱壳方法介绍
  14. MFC 资源脚本问题:fatal error CVT1100: 资源重复。类型: AFX DIALOG LAYOUT
  15. 小学生python编程写游戏_小学生C++趣味编程上下全2册+Python少儿趣味编程适合6-12岁儿童编程教程中小学生计算机程序设计创意零基础游戏编程书籍DK...
  16. 百度网盘如何免费上传大于4GB的文件(制作BT文件)
  17. h5实现地图定位签到
  18. Android 读取csv格式数据文件
  19. P3084 [USACO13OPEN]照片Photo(差分约束)
  20. js替换关键词为链接,只替换一次,要避开超链接或图片

热门文章

  1. 疯狂ios讲义疯狂连载之实现游戏逻辑(2)
  2. MySQL使用裸设备
  3. 黑马C++设计模式1
  4. 《子弹笔记术》[日]杉野干人(作者)epub+mobi+azw3格式下载
  5. 15个变态的Google面试题以及答案
  6. 软概(lesson 2):课堂测试
  7. 二 ASP.NET AutoPostBack
  8. extjs 验证消息不显示
  9. win32下Socket编程(1)
  10. python pcm,python pcm音频添加头转成Wav格式文件的方法