记录下坑
一开始我就使用Future、async、await去做异步操作,以为这样能解决问题,经过一天研究发现他们都还在同一个线程里面,也就是UI线程,导致卡顿,这明显不是我们想要的异步加载数据。
Dart真正的线程叫隔离(Isolate)
难受香菇
线程 隔离(Isolate)使用
使用compute隔离
compute(函数必须是顶级函数 或 static修饰的函数, 需要的入参如:json);
static Future<List<Map<String, dynamic>>> getList(String json) async {
return await compute(_getList, sp);
}
static List<Map<String, dynamic>> _getList(String json) {
//需要异步线程处理代码
}
有点心累,记录下吧。
网友评论