我有一个方法int Calculate(),可以简单理解为for循环做十万次乘法,比较耗时(数秒)。我想把它改成类似“多线程”的效果,就是这个计算能不阻塞整个游戏逻辑,游戏逻辑的运行和这个计算的运行能够并行。 该怎么用ETTask给他改写成异步方法才能实现耗时计算的逻辑能够和其他游戏逻辑并行呢?
Liquor 参考多线程异步加载表格方法,改一下就行。
加一个fiber
Long 我是ET7.2的 不好意思😓
laoyao 谢谢!这个应该是我想要的答案。另请问一下ET框架是不是不太推荐用Task起多线程,说不安全什么的,etbook和论坛里常常见到这种说法
Liquor 大量多线程并行在安卓上容易导致低端机闪退,个人实测。多线程读表启动的时候,低端机10次崩溃一两次,单线程读表没闪退过。
看你的运算逻辑 要不要跟unity api交互 适不适合开多线程 如果要主线程做也是可以的 遍历一定次数后 判断下当前帧已耗时间 超过30毫秒就await 到下一帧
susices 也可行