为了账号安全,请及时绑定邮箱和手机立即绑定

如下图展示,请问在同一个异步任务内的异步任务能不能并发?

如下图展示,请问在同一个异步任务内的异步任务能不能并发?

慕莱坞森 2023-03-18 17:13:04
最后的LoadPicAsync().excute()是三个同一时间执行,还是执行了Load1Async中的再依次执行?如果是依次执行,请修改代码,如何让这三个LoadPicAsync()同步执行。现在的代码我打印Log发现是执行了Load1Async()中所有的LoadPicAsync(),再执行Load2Async()中的LoadPicAsync();而我需要的是,三个在Load1Async(),Load2Async(),Load3Async()的OnPostExcute()里面的LoadPicAsync(),同时异步执行。
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

是三个线程同时运行还是依次运行,从你给的代码看不出来,要看excute()方法里线程类用的是哪个方法,如果是用.start()方法就是同时运行,如果用run()方法则依次运行。
不过用start()方法,那三个线程就和主线程是并行运行,可能产生你的Load1Async Load2Async Load3Async 没有运行完就去运行LoadPicAsync()了。如果LoadPicAsync()离需要用到Load1Async返回的对象,就一定要等Load1Async Load2Async Load3Async是否都运行完了,再运行LoadPicAsync()。

查看完整回答
反对 回复 2023-03-20
  • 1 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信