Task_等待任务完成几种方式
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_等待任务完成几种方式相关推荐
- 实现等待窗体的几种方式
实现等待窗体的几种方式: 下面说明了五种可以实现等待窗体的方式,其中三种给出了代码. 准备资料 安全访问控件成员 为了保证在创建控件的线程上调用控件成员,用下面的方式封装控件的属性.方法.其他自定义成 ...
- 第四节:Task的启动的四种方式以及Task、TaskFactory的线程等待和线程延续的解决方案
一. 背景 揭秘: 在前面的章节介绍过,Task出现之前,微软的多线程处理方式有:Thread→ThreadPool→委托的异步调用,虽然也可以基本业务需要的多线程场景,但它们在多个线程的等待处理方面 ...
- VC++等待光标的两种实现方式
VC++等待光标的两种实现方式 有时候在做烦琐的工作时,希望鼠标处于忙状态,有两种简单的方法来实现: 1. 采用ApI函数,大多数采用此方法: BeginWaitCursor(); .....处理.. ...
- discard connection丢失数据_python kafka 生产者发送数据的三种方式
python kafka 生产者发送数据的三种方式 发送方式 同步发送 发送数据耗时最长 有发送数据的状态,不会丢失数据,数据可靠性高 以同步的方式发送消息时,一条一条的发送,对每条消息返回的结果判断 ...
- 12 种方式轻松实现 Ruby 调用
作者 | Gregory Witek 译者 | 弯月,责编 | 王晓曼 头图 | CSDN 下载自东方IC 出品 | CSDN(ID:CSDNnews) 以下为译文: 最近,与同事聊天的时候,我们谈到 ...
- spring配置datasource三种方式
转自:http://blog.csdn.net/yangyz_love/article/details/8199207 1.使用org.springframework.jdbc.datasource. ...
- java映射文件是哪一种xml_java解析xml的几种方式哪种最好?
满意答案 gjek59ug 2013.10.10 采纳率:52% 等级:12 已帮助:9223人 (1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组 ...
- spring配置datasource三种方式 数据库连接
1.使用org.springframework.jdbc.datasource.DriverManagerDataSource 说明:DriverManagerDataSource建立连接是只要有连 ...
- java 异步事件_处理异步事件的三种方式
在网站开发中,异步事件是项目必然需要处理的一个环节,也因为前端框架的兴起,通过框架实现的 SPA 已经是快速建构网站的标配了,一部获取数据也就成了不可或缺的一环:本文来就讲一讲 JavaScript ...
最新文章
- 使用 git 管理 portage tree
- 经典!MATLAB线性等分linspace()函数,精确等分点数
- html的meta用法
- POJ 2516 -- Minimum Cost (最小费用最大流, 必须分开建图)
- ​Hmily重启后月度报告
- 在Spring data中使用r2dbc
- java怎么做系统_Java系统监控怎么做
- 基于Myeclipse的三大框架(SSH)整合
- zabbix详解(一)——zabbix基本概念
- ubuntu 12.04 server + OPENACS(TR069)安装配置日记
- 简单的php cms,30个很棒的PHP开源CMS内容管理系统
- Bash之正则表达式
- 三极管和MOS管的区别
- 秦岭三面佛已经拆除,觉得惋惜
- python识别虚假新闻的分类器_利用贝叶斯分类器检测虚假新闻
- Arduino开发板利用L298N电机驱动模块驱动直流电机
- 如何评价杭州阿里、海康、网易等组成 HR 联盟?
- 服务器cpu虚拟化已禁用怎样解禁,虚拟化已禁用,有办法吗
- 2021天梯赛选拔随缘补题.jpg
- 3dsnbsp;max基础材质初学者必读(15)——设置砖墙纹理
热门文章
- 云原生 - 轻量应用服务器 云服务器的区别
- mysql从库Retrieved_Gtid_Set事务数比Executed_Gtid_Set事务数少的异常情况
- 飞凌嵌入式对外征稿啦!500-1000元/篇,快到碗里来
- 服务器怎么在手机操作系统,手机可以操作云服务器吗
- STC12C5A60S2_DHT11驱动
- DMS前后端技术揭秘及最佳实践
- DICOM-Modality
- 【知识小结】圆方树 广义圆方树
- python对数组进行排序_python 字典、数组排序
- Elastic search入门到集群实战操作详解(原生API操作、springboot整合操作)-step1