gpt4 book ai didi

flutter - 为什么Future会阻塞主线程?

转载 作者:行者123 更新时间:2023-12-03 04:00:18 26 4
gpt4 key购买 nike

在我的Flutter应用程序中,我使用FutureBuilder运行Future,但是它阻塞了主UI线程。这是我正在使用的代码:

FutureBuilder(
future: trace(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.connectionState == ConnectionState.done)
return ma;
else
return Center(child: CircularProgressIndicator());
},
)
Future<void> trace() async {
List<int> bytes = await widget.image.readAsBytes();
img.Image imagee = img.decodeImage(bytes);
var svg = potrace(imagee);
ma = SvgPicture.string(svg);
}

编辑:
使用该代码,在处理图像时,CircularProgressIndicator会卡住,但是当我将功能更改为此时,进度指示器会正常旋转5秒钟。
Future<void> trace() async {
await Future.delayed(Duration(seconds: 5));
}

解:
img.Image imagee = await compute(img.decodeImage, bytes);

最佳答案

尝试使用计算或隔离进行后台处理,而不是在主线程中进行处理

关于flutter - 为什么Future会阻塞主线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57713026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com