type
status
date
slug
summary
tags
category
icon
password
Property
Sep 17, 2023 03:46 PM

异步编程和Continuation

Task非常适合异步编程,因为他们支持Continuation(他对异步非常重要)
第16讲里面TaskContinuationSource的例子
TaskContinuationSource是底层实现IO-bound异步方法的一种标准方式
对于Compute-bound方法,Task.Run会初始化绑定线程的并发
把task返回调用者,创建异步方法
异步编程的区别:目标是在调用图较低的位置来这样做
富客户端应用中,高级方法可以保留在UI线程和访问控制以及共享状态上,不会出现线程安全问题
同步写法
有问题的版本

语言对异步的支持非常重要

需要对task 的执行序列化
例如Task B依赖于Task A的执行结果
为此,必须在continuation内部触发下一次循环
async 和await
对于不想负责的实现异步非常重要
命令式循环结构不要和continuation混合在一起,因为他们依赖于本地状态
另一种实现,函数式写法(Linq查询),他也是响应式编程(Rx)的基础
C#异步编程-16 TaskCompletionSourceC#异步编程-19 await
  • Waline
Kitety
Kitety
独特为佳
公告
我曾经七次鄙视自己的灵魂
--卡里·纪伯伦
第一次,当它本可进取时,却故作谦卑;
第二次,当它在空虚时,用爱欲来填充;
第三次,在困难和容易之间,它选择了容易;
第四次,它犯了错,却借由别人也会犯错来宽慰自己;
第五次,它自由软弱,却把它认为是生命的坚韧;
第六次,当它鄙夷一张丑恶的嘴脸时,却不知那正是自己面具中的一副;
第七次,它侧身于生活的污泥中,虽不甘心,却又畏首畏尾。
 
最新评论
Loading...