写点什么

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

  • 2009-02-24
  • 本文字数:561 字

    阅读完需:约 2 分钟

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

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

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

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

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

2009-02-24 00:301357
用户头像

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

关注

评论

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

jQuery 请求

Jason199

jquery js post GET 7月月更

汽车电子行业开发者的内功心法:汽车软件开发V模型(瀑布模型)

不脱发的程序猿

嵌入式开发 瀑布模型 汽车软件开发 V模型

QT|QLabel显示多行文本过多后显示省略号

中国好公民st

qt 7月月更

KUDU1.11 环境安装

怀瑾握瑜的嘉与嘉

7月月更 kudu

strcat() - 连接字符串

謓泽

7月月更

Envoy监听管理

阿泽🧸

envoy 7月月更

【MySql 实战】高度聚合的数据项拆分为多行多列

安逸的咸鱼

MySQL 实战 7月月更

qt 实现日历美化

小肉球

qt 7月月更

读书笔记之数据密集型应用的可维护性

宇宙之一粟

设计数据密集型应用 7月月更

Qt | QWidget的一些总结

YOLO.

qt 7月月更

C# DataGridView数据导出Excel文件

IC00

C# 7月月更

【愚公系列】2022年7月 Go教学课程 013-常量、指针

愚公搬代码

7月月更

Java核心技术之泛型详解

小明Java问道之路

Java 后端 泛型 Java泛型 7月月更

王者荣耀商城异地多活架构

Pengfei

使用Flutter开发小程序+App)的一种组合思路

Geek_99967b

小程序

zookeeper-集群和zab协议

zarmnosaj

7月月更

数据平台的发展历程

奔向架构师

大数据 7月月更

python小知识-什么是上下文管理

AIWeker

Python python小知识 7月月更

系统刷JavaScripit 构建前端体系(语法篇)

程序员海军

JavaScript 7月月更

Prometheus 发布 LTS 长期支持版本啦

耳东@Erdong

release Prometheus 7月月更

Flink实战:消费Wikipedia实时消息

程序员欣宸

Java flink 7月月更

试着换个角度理解低代码平台设计的本质

Geek_z9ygea

Vue 前端 React 低代码平台

Kubernetes网络插件详解- Flannel篇

巨子嘉

云计算 容器 云原生

一篇文章带你快速学会Flex布局

bo

CSS 前端 Flex 7月月更

Java中的设计模式

Java学术趴

7月日更

C#入门系列(二十五) -- 接口

陈言必行

7月月更

STM32+DHT11读取温湿度数据显示

DS小龙哥

7月月更

VLAN再见,我选择用QinQ!1000字带你详细了解QinQ技术

wljslmz

VLAN 网络技术 7月月更 QinQ

没有了可用Task slot,Flink新增任务会怎样?

程序员欣宸

Java flink 7月月更

LeetCode-数组中数字出现的次数(单身狗问题)

芒果酱

c++ C语言 数据结构算法 Leet Code 7月月更

分享 15 个 Vue3 全家桶开发的避坑经验

Geek_z9ygea

Vue Vue3

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