ios - 为什么 Flutter 不重用之前创建的线程?
问题描述
我在 Flutter 应用程序的单独 Isolate 中运行耗时的计算。我正在compute
为此使用功能。
class _MyPageState extends State<MyPage> {
int _result = 0;
void someAction() async {
int result = await compute(timeConsumingFunction, 40);
setState(() {
_result = result;
});
}
@override
Widget build(BuildContext context) {
return Column(
children: [
Text('$_result'),
MaterialButton(
child: Text("Run action"),
onPressed: someAction
)
]
);
}
}
每次用户点击按钮时,在 Xcode 分析器中,我都会看到创建了新的 ThreadPool Worker。
- 为什么 Flutter 不重用之前创建的 ThreadPools?
- 以这种方式运行计算功能可以吗?还是有更好的方法?
- 我应该关心线程池的数量吗?
解决方案
推荐阅读
- ruby-on-rails - 第二个 Rails 应用程序能否重用已购买的 Redis 实例
- c - 同一参数返回不同值的函数
- spring-cloud-contract - 无法在 Spring Cloud Contract 中生成代理类 ContractVerifierExtension
- html - CSS 仅在特定页面宽度下显示
- amazon-dynamodb - 将大量虚拟数据加载到 DynamoDB 全局表
- python-3.x - 'python' 不是内部或外部命令、可运行程序或批处理文件。VScode 中的错误
- python-3.x - 处理模块的类型注释
- python - 使用 python-for-android 将 kivy 应用程序编译为 apk 失败
- html - 修改表单内的 Angular Material 表后如何使我的 ngForm 变脏
- python - 如何从命令行运行不同的python函数