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 提供了执行异步操作的三种模式相关推荐

  1. Bean的生命周期行为控制,初始化与销毁bean时执行操作的三种方法

    Bean的生命周期行为控制,初始化与销毁bean时执行操作的三种方法 一.实现Spring的接口 二.XML配置中使用 init-method和destory-method 三.使用@PostCons ...

  2. SAP EWM 与 AGV 机器人对接的三种模式

    SAP EWM 与 AGV 机器人对接的三种模式 https://mp.weixin.qq.com/s/xGfUMSBTEMYKce5oXcWDqA 导读    本文转载自:弘毅供应链,跟随供应链专家 ...

  3. Mysql当前模式让不记录日志_MySQL日志binlog的三种模式

    1三种模式的介绍 二进制日志binlog作用: 1.以二进制形式记录更改数据库的SQL语句(insert,update,delete,create,drop,alter等) 2.用于Mysql主从复制 ...

  4. DDD分层架构的三种模式

    本文来说下DDD分层架构的三种模式 文章目录 概述 DDD 分层架构 模式一:四层架构 模式二:五层架构 模式三:六边形架构 本文小结 概述 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和 ...

  5. 关于oracle的物理dg,oracle物理DG管理-redo数据传输,应用与三种模式

    环境http://blog.csdn.net/sunziyue/article/details/50799648基础之上 1学习配置参数 下列参数为primary 角色相关 *.db_name='or ...

  6. MySQL下bin-log的三种模式(ROW、Statement、Mixed)

    MySQL的bin-log日志备份有三种模式,分别是:ROW.Statement.Mixed 一.Row 基于行的复制(row-based replication,RBR) 日志中会记录成每一行数据被 ...

  7. Data Guard 三种模式解释

    Data Guard 保护模式(Data Guard Protection Modes) 对于 Data Guard 而言,其生存逻辑非常简单,由于它提供了三种数据保护的模式,我们又亲切的叫它:有三模 ...

  8. 还在搞三层架构?了解下 DDD 分层架构的三种模式吧 !

    来源:jianshu.com/p/a775836c7e25 引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. DDD DDD(Domain DrivenDesign ...

  9. 还在搞三层架构?了解下 DDD 分层架构的三种模式吧

    引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. DDD DDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高 ...

最新文章

  1. ACE中静态实例管理方式
  2. DateUtils常用方法
  3. Vue/Angular中父窗口新开的子窗口关闭的时候刷新父窗口
  4. 类欧几里得算法详细推导过程(附带模板)
  5. windows phone 8.0 的网络图片异步加载方案
  6. 如何看公司的财务数据
  7. 一阶rc电路时间常数_关于RC延时电路的延时时间计算
  8. PCL之积分图法线估计
  9. ios 图片合成 处理合成模糊 水印 模板图片合成
  10. BZOJ1057 [ZJOI2007]棋盘制作 【最大同色矩形】
  11. Windows10易升下载
  12. 大数据hadoop讲解
  13. orientation
  14. valine自定义表情正确打开方式
  15. 活跃在全球顶级会议的阿里新生代白帽:能挖漏洞会做焊工
  16. 峰哥买房用的贝壳app,他们的大数据平台如何实现的?
  17. vue3.0 结合element ui 开发后台ui框架
  18. figma的一些用法(一)
  19. 为什么用互联网思维,却做不好硬件
  20. 基于用户的协同过滤推荐算法原理和实现分析

热门文章

  1. 16-1平衡树源代码
  2. 2015年上半年 软件设计师 上午试卷 综合知识-2
  3. 用JQUERY为INPUT的TXT类型赋值及取值操作
  4. 汇编语言学习——第四章 第一个汇编程序
  5. 湖北省汉十高速公路项目接近尾声,所想所感真的值得写写
  6. 63. Unique Paths II and 64. Minimum Path Sum
  7. [Leedcode][JAVA][第876题][快慢指针]
  8. redis存储数据类型_Redis与Memcahe的区别最全整理
  9. mysql 读取comment_Mysql 获取表的comment 字段
  10. java gb13000_浅谈 GB13000