ET版本:8.1
Unity版本:2022.3.15f1c1
我想看下ETask.Coroutine具体是怎样实现的,但我发现我看不懂,可能是因为之前比较少接触异步编程的原因,我想了解的是ET的协程是不是像unity协程一样单线程每帧去调用一次来实现的吗?
第二个问题我看了下代码,ETTask的Coroutine代码是这样的:
Coroutine方法再次导航的话会进ETVoid.Coroutine,那个方法为空
如果self.CheckAsync().Coroutine();这样的话实际上是self.CheckAsync().InnerCoroutine().Coroutine();对吧?InnerCoroutune实际上还是await吧?也就是等于await self.CheckAsync().Coroutine(),但是Coroutine为空,也就是什么都不做,这样不还是异步吗?为什么最后效果是同步呢?
上面说的不对 自己论坛内查Coroutine关键字
susices 我说的就是不会等待的原理。。。
kylinok 你倒是自己试下把这个iscomplete = false 照样不会等待,这里ETVoid 的iscomplete其实啥用都没有 它没有实现GetAwaiter 无法被await 而isComplete是状态机判断 awaiter是否完成用的
susices 哦,想成这个ETTaskCompleted这个了,一下没反应过来