首页 > 其他分享 >三种异步模式(扫盲)&BackgroundWorker

三种异步模式(扫盲)&BackgroundWorker

时间:2023-01-05 09:12:35浏览次数:54  
标签:异步 TAP EAP 编程 BackgroundWorker 扫盲 APM 操作

1.APM&EAP&TAP

.NET支持三种异步编程模式分别为APM、EAP和TAP:

1.基于事件的异步编程设计模式 (EAP,Event-based Asynchronous Pattern)

EAP的编程模式的代码命名有以下特点: 

1.有一个或多个名为 “[XXX]Async” 的方法。这些方法可能会创建同步版本的镜像,这些同步版本会在当前线程上执行相同的操作。
2.该类还可能有一个 “[XXX]Completed” 事件,监听异步方法的结果。
3.它可能会有一个 “[XXX]AsyncCancel”(或只是 CancelAsync)方法,用于取消正在进行的异步操作。

2.异步编程模型(APM,Asynchronous Programming Model)

APM的编程模式的代码命名有以下特点:

1.使用 IAsyncResult 设计模式的异步操作是通过名为[BeginXXX] 和 [EndXXX] 的两个方法来实现的,这两个方法分别开始和结束异步操作 操作名称。例如,FileStream 类提供 BeginRead 和 EndRead 方法来从文件异步读取字节。

2.在调用 [BeginXXX] 后,应用程序可以继续在调用线程上执行指令,同时异步操作在另一个线程上执行。 每次调用 [BeginXXX] 时,应用程序还应调用 [EndXXX] 来获取操作的结果。


3.基于任务的编程模型(TAP,Task-based Asynchronous Pattern)

基于 System.Threading.Tasks 命名空间的 Task 和 Task<TResult>,用于表示任意异步操作。 TAP之后再讨论。

 

关于三种异步操作详细说明请戳:这里 

 

标签:异步,TAP,EAP,编程,BackgroundWorker,扫盲,APM,操作
From: https://www.cnblogs.com/billzhjh/p/17026537.html

相关文章

  • unity3d,异步加载场景
    很简单,代码如下:usingUnityEngine;usingSystem.Collections;usingUnityEngine.UI;publicclassLoading:MonoBehaviour{publicSliderloading_bar;privateAsyncO......
  • 数据库日志——binlog、redo log、undo log扫盲
    日志是数据库中比较重要的组成部分,很多核心的功能必须依靠日志才能完成。该篇文章简要介绍了binlog、redolog与undolog,能够在一定程度上拓宽对mysql日志的整体认识。......
  • @Async异步注解的使用
    @Async简介使用spring快速开启异步执行服务的注解应用场景同步:同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。异步:异步调用则是只是发送了调用的指......
  • 异步文件中心
    异步Servlet和disruptor的融合构建文件中心通过请求异步化带来其他明显优点:可以处理更高并发连接数,提高系统整体吞吐量请求解析与业务处理完全分离,职责单一自定义业务线程......
  • jango框架:Q查询进阶操作、ORM查询优化、ORM事务操作、ORM常用字段类型、ORM常用字段
    目录Q查询进阶操作ORM查询优化ORM查询优化之only与deferORM查询优化之select_related与prefetch_relatedORM事务操作ORM常用字段类型ORM常用字段参数Ajax异步提交基础语法......
  • 19、前端基础-ES6---异步编排
    ......
  • JMS与Spring之二(用message listener container异步收发消息)
    本文主要参考JavaMessageService(2nd)byMarcRicbard。在Spring框架中使用JMS传递消息有两种方式:JMStemplate和messagelistenercontainer,前者用于同步收发消息,后者用于......
  • Linux异步IOio_uring 与 libaio
    我们可以先整体看一下linux的IO模型大体有哪些类型。linux的IO主要可以分为两个大类,而我们今天要介绍的io_uring就属于其中的kernelIO模型中的asyncIO模......
  • promise构造函数也是异步的吗
    constp=newPromise((res,rej)=>{console.log('我是Promise')//1res('我是resolve')})console.log('我是主线程')//2p.then(res=>console......
  • 9.Java异步编程
    一.JavaExecutor框架 Runnable接口和Callable接口都是对任务的抽象。java.util.concurrent.Executor接口则是对任务执行的抽象。 Executor接口功能有限,①只能为客户端......