Flutter Web 的“compute()”是不是在它自己的线程或 web worker 上工作,或者它是如何工作的?
Posted
技术标签:
【中文标题】Flutter Web 的“compute()”是不是在它自己的线程或 web worker 上工作,或者它是如何工作的?【英文标题】:Does Flutter Web's "compute()" work on it's own thread or web worker, or how does it work?Flutter Web 的“compute()”是否在它自己的线程或 web worker 上工作,或者它是如何工作的? 【发布时间】:2020-04-29 21:22:12 【问题描述】:如果我这样做,例如:
FutureBuilder(
initialData: null,
future: compute(expensiveParsingOperation, data),
builder: (context, snapshot)
if(!snapshot.hasData)
// This doesn't spin (frozen). The entire UI is janked until the expensive operation future completes.
CircularProgressIndicator();
else
Container();
);
我希望以上内容能够将expensiveParsingOperation
函数发送给网络工作者或其他东西,而不是让主线程卡顿,但这不是我观察到的情况。
【问题讨论】:
我发现了一个小型 Dart 库,可以帮助您在 Dart 中使用 Web Workers,因为 Dart 2 已停止在 Web 上进行 Isolate 集成。查看github.com/deakjahn/flutter_isolate_web 【参考方案1】:compute
此时在网络平台上什么都不做
见https://github.com/flutter/flutter/issues/33577
【讨论】:
感谢您的链接。我原以为它会包装一个网络工作者,但显然我现在必须自己管理它。 @John Evans 你是怎么做到的?我现在也需要帮助。我在互联网上几乎没有发现任何内容。以上是关于Flutter Web 的“compute()”是不是在它自己的线程或 web worker 上工作,或者它是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章