 |
|
SalimTerryLi
V2EX member #667070, joined on 2023-12-14 23:14:16 +08:00
|
SalimTerryLi's recent replies
再议,这篇帖子我也没能发出来。需要 6hrs 等待。明早起床后再来点发送。
现在点击发送看到原因了,需要注册 14 天。我真的蚌埠住。
一个大概的思路,非最优实现:
- 一个完整业务流程封装为一个 public async Task<Foo> async_work(){}函数
- var result = async_work().wait() 来启动并阻塞执行异步任务(或者不阻塞?不清楚 C#的控制流)
原理:嵌套的逻辑都依赖于上下文,但是这个上下文又具有一个特点:和栈一样,单方向由前置操作决定后续操作。所以我觉得应用有栈协程可以很好的处理这类业务逻辑。注,有栈/无栈协程在不同的定义下似乎存在歧义,我是指在协程内运行的业务代码拥有 per-coro 的栈。
新号发不了长的。就离谱
对付 callback hell 应该都可以上 coroutine/async 吧? C#是有协程支持的,但我不知道它的底层实现的代价,因为我不写 C#