GMTC北京站优惠购票最后一周!13个热点专题,50+大厂案例,这里一览 了解详情
写点什么

文章:简化异步操作(下)──构建 AsyncTaskDispatcher 简化多个异步操作之间的协作调用

  • 2009 年 2 月 24 日
  • 本文字数:561 字

    阅读完需:约 2 分钟

由于 CCR 和 AsyncEnumerator 难以“并行”地执行异步代码,因此我们需要提出新的解决方案来满足这方面的需求。本文将构建一个 AsyncTaskDispatcher 组件,使多个异步操作之间的协作调用得以大大简化。

与之前的作法相比,似乎代码量提高了,但是观察后可以发现,多出来的代码其实都是在创建匿名的委托对象,而一个个匿名的委托对象将代码进行了有条理 的分割,并充分利用“匿名方法”形成的闭包,使各委托对象能够共享“调用堆栈”上的数据。现在的实现使用了一种直观的方式表现了各异步操作之间的依赖关 系,代码一下子变得条理清晰,易于维护了。此外还有一点非常重要:虽然异步任务为“并行”执行,但是其中所有的委托对象只会依次调用,因此开发人员可以放 心地编写代码,而不用担心线程安全方面的问题。

在 AsyncEnumerator 的基础上开发一个 AsyncTaskDispatcher 并不困难,但是这个组件能够有效地简化多个异步操作之间 的协作调用。一般来说,这样的做法能够使应用程序的性能与伸缩性得到比较明显的提高。AsyncTaskDispatcher 的代码在 MSDN Code Gallery 上完全公开,您可以自由修改,使它更好地满足您的需求。

阅读完整文章,请访问:简化异步操作(下):构建 AsyncTaskDispatcher 简化多个异步操作之间的协作调用

相关文章简化异步操作(上)──使用 CCR 和 AsyncEnumerator 简化异步操作

2009 年 2 月 24 日 00:30869
用户头像

发布了 157 篇内容, 共 47.8 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

一个有情怀的PPT模板下载网站

happlyfox

学习 3月日更 工具分享

开源的 Switch 模拟器——GitHub 热点速览 v.21.12

HelloGitHub

GitHub 开源

java deep vs shallow copies

shengjk1

Java deep copy shallow cop

万众瞩目的EGG Network,备受期待的New-DeFi自治共识论坛在海口闭幕

币圈那点事

区块链

JVM G1GC的算法与实现

Yano

Java JVM GC G1GC

Veema 寄来的新书

吴威

vmware 容灾 备份 veeam esxi

人工智能能和人类辩论了;《云网产业发展白皮书》发布

京东科技开发者

人工智能

Java学习笔记——实体类(ENTITY,VO,DTO,BO)

棉花糖

Java

一文搞懂 FlinkSQL函数 LAST_VALUE 的原理

shengjk1

flink flink sql flink 源码

uni-app跨端开发H5、小程序、IOS、Android(七):uni-app渲染

黑马腾云

html5 uni-app 大前端 3月日更

LeetCode题解:126. 单词接龙 II,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

图像视频压缩:深度学习,有一套

华为云开发者联盟

深度学习 自编码器 图像压缩 循环神经网络 视频压缩

实践解析丨Rust 内置 trait:PartialEq 和 Eq

华为云开发者联盟

rust hash Trait PartialEq Eq

如何在Python中实现Round函数?

华为云开发者联盟

Python 函数 Numpy Round 舍入函数

企业数字化转型,营销技术驱动超级增长!

博文视点Broadview

前端开发:数据处理方法分享(其一)

三掌柜

vue.js 大前端 3月日更

深入理解ES8的新特性SharedArrayBuffer

程序那些事

JavaScript ecmascript 程序那些事 es8

一文搞懂Flink SQL执行过程

shengjk1

flink flink源码 flink sql flink sql 执行过程

一文搞懂 FlinkSQL 的 KafkaSource

shengjk1

flink flink源码 flink sql

NA公链(Nirvana)NAC公链独步公链江湖

区块链第一资讯

区块链

C语言性能优化:减少相关性依赖,利用指令并行提升性能

1

编程 性能优化 C语言 cpu 100%

带你全面认识CMMI V2.0(三)——实践域

渠成CMMI

CMMI

【IstioCon 2021】如何在Istio中进行源地址保持?

华为云原生团队

开源 云原生 istio 华为云 服务网格

上帝视角掌管城市动向!智慧园区驱动城市数字化转型

一只数据鲸鱼

物联网 数据可视化 智慧城市 智慧园区

寻找被遗忘的勇气(二十三)

Changing Lin

3月日更

LiteOS内核源码分析:位操作模块

华为云开发者联盟

LiteOS 源代码 位操作 bit Huawei LiteOS

AIOT技术大起底:别人开发“软件”,海尔智家开发“生活”

DT极客

Python OpenCV 图像处理二值化,取经之旅第 7 天

梦想橡皮擦

3月日更

领跑行业!浪潮云斩获“2021云管和云网大会”多项殊荣

浪潮云

云计算 云原生

适配器模式在Mybatis中的妙用

Java小咖秀

Java 源码 设计模式 mybatis 开发

Flink 提交作业运行的各种模式总结

shengjk1

flink flink 执行

文章:简化异步操作(下)──构建AsyncTaskDispatcher简化多个异步操作之间的协作调用_.NET_赵劼_InfoQ精选文章