NET 提供了执行异步操作的三种模式
1.APM模式简介
在.net1.x的版本中就可以使用IAsyncResult接口实现异步操作,但是比较复杂,这种称之为异步编程模型模式 (Asynchronous Programming Model, APM),也称为IAsyncResult模式
在这种APM模式下,一个同步操作XXX需要定义BeginXXX方法和EndXXX方法。
例如,如果有一个同步方法DownloadString,其异步版本就是BeginDownloadString和EndDownloadString方法。
BeginXXX方法接受其同步方法的所有输入参数,EndXXX方法使用同步方法的所有输出参数,并按照同步方法的返回类型来返回结果。
BeginXXX方法返回IAsyncResult接口的引用(内部是AsyncResult对象),用于验证调用是否已经完成,并且一直等到方法的执行结束。
使用异步模式时,BeginXXX方法还定义了一个AsyncCallback参数,用于接受在异步方法执行完成后调用的委托。
这种编程方式比较麻烦,使用很不方便,实际开发中,现在的.net 项目几乎不再使用这种方式实现异步操作(因为有更加方便的方法)。
2. EAP:基于事件的异步编程模式(Event-based Asynchronous Pattern)
是提供基于事件的异步行为的旧模型。 这种模式需要后缀为 Async 的方法,以及一个或多个事件、事件处理程序委托类型和 EventArg 派生类型。 EAP 是在 .NET Framework 2.0 中引入的。 建议新开发中不再使用这种模式。
4.TAP:基于任务的异步编程模式(Task-based Asynchronous Pattern)
该模式使用单一方法表示异步操作的开始和完成。 TAP 是在 .NET Framework 4 中引入的,是在 .NET 中进行异步编程的推荐方法
5. C# 中的 async 和 await 关键词以及 Visual Basic 中的 Async 和 Await 运算符为 TAP 添加了语言支持。是语法糖
TPL(Task Parallel Library)是.Net 4.0 之后带来的新特性
TaskAsync
BGW BackGroundWorker
NET 提供了执行异步操作的三种模式相关推荐
- Bean的生命周期行为控制,初始化与销毁bean时执行操作的三种方法
Bean的生命周期行为控制,初始化与销毁bean时执行操作的三种方法 一.实现Spring的接口 二.XML配置中使用 init-method和destory-method 三.使用@PostCons ...
- SAP EWM 与 AGV 机器人对接的三种模式
SAP EWM 与 AGV 机器人对接的三种模式 https://mp.weixin.qq.com/s/xGfUMSBTEMYKce5oXcWDqA 导读 本文转载自:弘毅供应链,跟随供应链专家 ...
- Mysql当前模式让不记录日志_MySQL日志binlog的三种模式
1三种模式的介绍 二进制日志binlog作用: 1.以二进制形式记录更改数据库的SQL语句(insert,update,delete,create,drop,alter等) 2.用于Mysql主从复制 ...
- DDD分层架构的三种模式
本文来说下DDD分层架构的三种模式 文章目录 概述 DDD 分层架构 模式一:四层架构 模式二:五层架构 模式三:六边形架构 本文小结 概述 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和 ...
- 关于oracle的物理dg,oracle物理DG管理-redo数据传输,应用与三种模式
环境http://blog.csdn.net/sunziyue/article/details/50799648基础之上 1学习配置参数 下列参数为primary 角色相关 *.db_name='or ...
- MySQL下bin-log的三种模式(ROW、Statement、Mixed)
MySQL的bin-log日志备份有三种模式,分别是:ROW.Statement.Mixed 一.Row 基于行的复制(row-based replication,RBR) 日志中会记录成每一行数据被 ...
- Data Guard 三种模式解释
Data Guard 保护模式(Data Guard Protection Modes) 对于 Data Guard 而言,其生存逻辑非常简单,由于它提供了三种数据保护的模式,我们又亲切的叫它:有三模 ...
- 还在搞三层架构?了解下 DDD 分层架构的三种模式吧 !
来源:jianshu.com/p/a775836c7e25 引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. DDD DDD(Domain DrivenDesign ...
- 还在搞三层架构?了解下 DDD 分层架构的三种模式吧
引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. DDD DDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高 ...
最新文章
- ACE中静态实例管理方式
- DateUtils常用方法
- Vue/Angular中父窗口新开的子窗口关闭的时候刷新父窗口
- 类欧几里得算法详细推导过程(附带模板)
- windows phone 8.0 的网络图片异步加载方案
- 如何看公司的财务数据
- 一阶rc电路时间常数_关于RC延时电路的延时时间计算
- PCL之积分图法线估计
- ios 图片合成 处理合成模糊 水印 模板图片合成
- BZOJ1057 [ZJOI2007]棋盘制作 【最大同色矩形】
- Windows10易升下载
- 大数据hadoop讲解
- orientation
- valine自定义表情正确打开方式
- 活跃在全球顶级会议的阿里新生代白帽:能挖漏洞会做焊工
- 峰哥买房用的贝壳app,他们的大数据平台如何实现的?
- vue3.0 结合element ui 开发后台ui框架
- figma的一些用法(一)
- 为什么用互联网思维,却做不好硬件
- 基于用户的协同过滤推荐算法原理和实现分析
热门文章
- 16-1平衡树源代码
- 2015年上半年 软件设计师 上午试卷 综合知识-2
- 用JQUERY为INPUT的TXT类型赋值及取值操作
- 汇编语言学习——第四章 第一个汇编程序
- 湖北省汉十高速公路项目接近尾声,所想所感真的值得写写
- 63. Unique Paths II and 64. Minimum Path Sum
- [Leedcode][JAVA][第876题][快慢指针]
- redis存储数据类型_Redis与Memcahe的区别最全整理
- mysql 读取comment_Mysql 获取表的comment 字段
- java gb13000_浅谈 GB13000