1.0 ContinueWith

在ContinueWith会得到上个任务的结果并且可以用IsFaulted判断上个任务是否出现异常!

  var t = Task.Run(() => { throw new Exception(""); });//如果有异常t.ContinueWith(c =>{if (c.IsFaulted){Console.WriteLine("发生了异常,但不被系统抛出来了,但是此时获取上个任务的结果会抛出异常");}});Console.ReadKey();

2.0 OnCompleted

//先输出 已经开始执行,其次才是第一句var t = Task.Run(() => { Thread.Sleep(1500); throw new Exception("");});t.GetAwaiter().OnCompleted(() => { Console.WriteLine("这里是执行完后自动的回调事件"); });Console.WriteLine("已经开始执行");Console.ReadKey();

3.0 t.GetAwaiter().GetResult,t.Wait(),t.Result

 var t = Task.Run(() => { Thread.Sleep(1500);  });t.GetAwaiter().GetResult();Console.WriteLine("上面会阻塞线程获取结果");Console.ReadKey();

4.0  await,这就不演示了,配合async关键字使用!具体可以看我另一篇文章

5.0  Task.WaitAny,Task.WaitAll

转载于:https://www.cnblogs.com/entclark/p/8379876.html

Task_等待任务完成几种方式相关推荐

  1. 实现等待窗体的几种方式

    实现等待窗体的几种方式: 下面说明了五种可以实现等待窗体的方式,其中三种给出了代码. 准备资料 安全访问控件成员 为了保证在创建控件的线程上调用控件成员,用下面的方式封装控件的属性.方法.其他自定义成 ...

  2. 第四节:Task的启动的四种方式以及Task、TaskFactory的线程等待和线程延续的解决方案

    一. 背景 揭秘: 在前面的章节介绍过,Task出现之前,微软的多线程处理方式有:Thread→ThreadPool→委托的异步调用,虽然也可以基本业务需要的多线程场景,但它们在多个线程的等待处理方面 ...

  3. VC++等待光标的两种实现方式

    VC++等待光标的两种实现方式 有时候在做烦琐的工作时,希望鼠标处于忙状态,有两种简单的方法来实现: 1. 采用ApI函数,大多数采用此方法: BeginWaitCursor(); .....处理.. ...

  4. discard connection丢失数据_python kafka 生产者发送数据的三种方式

    python kafka 生产者发送数据的三种方式 发送方式 同步发送 发送数据耗时最长 有发送数据的状态,不会丢失数据,数据可靠性高 以同步的方式发送消息时,一条一条的发送,对每条消息返回的结果判断 ...

  5. 12 种方式轻松实现 Ruby 调用

    作者 | Gregory Witek 译者 | 弯月,责编 | 王晓曼 头图 | CSDN 下载自东方IC 出品 | CSDN(ID:CSDNnews) 以下为译文: 最近,与同事聊天的时候,我们谈到 ...

  6. spring配置datasource三种方式

    转自:http://blog.csdn.net/yangyz_love/article/details/8199207 1.使用org.springframework.jdbc.datasource. ...

  7. java映射文件是哪一种xml_java解析xml的几种方式哪种最好?

    满意答案 gjek59ug 2013.10.10 采纳率:52%    等级:12 已帮助:9223人 (1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组 ...

  8. spring配置datasource三种方式 数据库连接

    1.使用org.springframework.jdbc.datasource.DriverManagerDataSource  说明:DriverManagerDataSource建立连接是只要有连 ...

  9. java 异步事件_处理异步事件的三种方式

    在网站开发中,异步事件是项目必然需要处理的一个环节,也因为前端框架的兴起,通过框架实现的 SPA 已经是快速建构网站的标配了,一部获取数据也就成了不可或缺的一环:本文来就讲一讲 JavaScript ...

最新文章

  1. 使用 git 管理 portage tree
  2. 经典!MATLAB线性等分linspace()函数,精确等分点数
  3. html的meta用法
  4. POJ 2516 -- Minimum Cost (最小费用最大流, 必须分开建图)
  5. ​Hmily重启后月度报告
  6. 在Spring data中使用r2dbc
  7. java怎么做系统_Java系统监控怎么做
  8. 基于Myeclipse的三大框架(SSH)整合
  9. zabbix详解(一)——zabbix基本概念
  10. ubuntu 12.04 server + OPENACS(TR069)安装配置日记
  11. 简单的php cms,30个很棒的PHP开源CMS内容管理系统
  12. Bash之正则表达式
  13. 三极管和MOS管的区别
  14. 秦岭三面佛已经拆除,觉得惋惜
  15. python识别虚假新闻的分类器_利用贝叶斯分类器检测虚假新闻
  16. Arduino开发板利用L298N电机驱动模块驱动直流电机
  17. 如何评价杭州阿里、海康、网易等组成 HR 联盟?
  18. 服务器cpu虚拟化已禁用怎样解禁,虚拟化已禁用,有办法吗
  19. 2021天梯赛选拔随缘补题.jpg
  20. 3dsnbsp;max基础材质初学者必读(15)——设置砖墙纹理

热门文章

  1. 云原生 - 轻量应用服务器 云服务器的区别
  2. mysql从库Retrieved_Gtid_Set事务数比Executed_Gtid_Set事务数少的异常情况
  3. 飞凌嵌入式对外征稿啦!500-1000元/篇,快到碗里来
  4. 服务器怎么在手机操作系统,手机可以操作云服务器吗
  5. STC12C5A60S2_DHT11驱动
  6. DMS前后端技术揭秘及最佳实践
  7. DICOM-Modality
  8. 【知识小结】圆方树 广义圆方树
  9. python对数组进行排序_python 字典、数组排序
  10. Elastic search入门到集群实战操作详解(原生API操作、springboot整合操作)-step1