请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

CancellationContinuation中的doCancel里的状态判断问题

老师,CancellationContinuation中的doCancel在接收到外部协程体取消事件后,进行的状态判断不应该是用updateAndGet么为啥是用变化之前的状态进行判断。

正在回答 回答被采纳积分+3

1回答

bennyhuo 2022-08-18 18:41:48
updateAndGet 的返回值是新状态。这个这里没有用到。

状态流转肯定是要看之前是什么状态的,不同的状态之间流转会有不同的行为,所以才会有对prev的处理。
0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉5199794 #1
    就是这里为什么要用之前的状态,doCancel就是用来做状态流转的,应该是修改为CancelState.Cancelled后就进行 cancelHandlers.forEach(OnCancel::invoke)这个调用吧,代码里是用的getAndUpdate,用的之前的状态是CancelState.Cancelled来判断的,感觉有问题
    回复 有任何疑惑可以回复我~ 2022-08-18 19:15:13
  • 你贴一下具体视频的位置吧,我现在不知道你具体说的哪一段
    回复 有任何疑惑可以回复我~ 2022-08-18 21:54:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信