我需要在我的应用程序上返回一个 Future,因为我认为我的函数需要太多时间才能完成。
所以我有两个可能的答案:使用完成者 or an Isolate.
是什么让我选择其中之一?
我可以将 Completer 放在我想要的任何地方并相信它会正常工作吗?
这是如何运作的?就像.. Flutter 必须以 60fps 在屏幕上绘制,对吧?那么,它会在画布上绘制之后和下一次绘制之前计算这些东西吗?我很好奇,因为 Flutter 不是多线程的(但似乎隔离可以做到这一点)。所以我很困惑,不知道如何编写值得信赖的代码。
而且,有理由不使用 Completer 吗?就像,我认为我的代码花费了太多时间,但也许不是......是否有理由检查完成所需的时间,如果它低于阈值,我不应该使用它?
提前致谢。
这篇文章对我理解异步的东西有很大帮助:https://www.didierboelens.com/2019/01/futures---isolates---event-loop/
除了用代码解释之外,我认为结论回答了我的问题:
因此,您在开发过程中应该系统地考虑以下一些提示:
如果代码片段不能被中断,请使用正常的同步过程(一个方法或多个相互调用的方法);
如果代码片段可以独立运行而不影响应用程序的流动性,请考虑通过使用 Future 来使用事件循环;
如果繁重的处理可能需要一些时间才能完成,并且可能会影响应用程序的流动性,请考虑使用隔离。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)