请稍等 ...
×

采纳答案成功!

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

正在回答

2回答

https://img1.sycdn.imooc.com//szimg/5db69adc0906849313160924.jpg

视频里面本意是想讲这个写法的哈~结果少改了点儿地方,同学可以试试这个写法。

视频当中因为少改了这一段儿,实际上运行结果与一开始没有什么区别,运行结果 1 没有执行其实是运气的成分,给同学造成疑惑,抱歉哈~ 感谢同学指出~

0 回复 有任何疑惑可以回复我~
  • 提问者 懒得圆满 #1
    非常感谢!谢谢老师
    回复 有任何疑惑可以回复我~ 2019-10-28 16:44:40
  • bennyhuo 回复 提问者 懒得圆满 #2
    (๑>؂<๑)
    回复 有任何疑惑可以回复我~ 2019-10-28 16:45:32
  • 提问者 懒得圆满 回复 bennyhuo #3
    今天试了下,发现atomic方式启动的这么写的话lanuch里面的并没有执行到,不是说atomic在遇到挂起点之前一定会被执行的嘛,我更新了截图您看下
    回复 有任何疑惑可以回复我~ 2019-10-29 15:22:45
bennyhuo 2019-10-24 17:36:04

 1 那个位置如果在 cancel 的时候已经被调度了的话,确实会执行的。不过这个要看运气了~

你可以启动一个协程作为外部作用域,在里面启动子协程之前先把父协程cancel掉,那么再启动子协程就会发现 Default 模式下就不会执行 1了,但 atomic 还是会执行

0 回复 有任何疑惑可以回复我~
  • 提问者 懒得圆满 #1
    我的代码就是在父协程里先cancel了,就是上面的btn_global_cancel.onClick, 但还是执行了default的1
    回复 有任何疑惑可以回复我~ 2019-10-25 10:26:18
  • 你里面的协程是Globalscope启动的,跟外面的没关系
    回复 有任何疑惑可以回复我~ 2019-10-25 13:40:50
  • 提问者 懒得圆满 回复 bennyhuo #3
    没懂,我这不是跟你的例子一样的吗,例子中里面的协程也是GlobalScope启动的啊
    回复 有任何疑惑可以回复我~ 2019-10-27 20:08:59
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信