Flutter:异步多线程结合

示例一

js 复制代码
main() => isoLoadguncmo();

void isoLoadguncmo() {
  Future(() {
    print('1来了');
    return compute(func, 123);
  }).then((value) => print('1结束'));
  Future(() {
    print('2来了');
    return compute(func, 123);
  }).then((value) => print('2结束'));
  Future(() {
    print('3来了');
    return compute(func, 123);
  }).then((value) => print('3结束'));
  Future(() {
    print('4来了');
    return compute(func, 123);
  }).then((value) => print('4结束'));
  Future(() {
    print('5来了');
    return compute(func, 123);
  }).then((value) => print('5结束'));
}

func(int message) {}

主线程中的异步Future,会按顺序执行1-5,

Future内的子线程compute则是无序的执行。

如果将return compute(func, 123);代码中的return去除,则会打印

因为

js 复制代码
Future(() {
  print('1来了');
  compute(func, 123);
})
和
.then((value) => print('1结束'));
可以看做是一个整体

示例二

js 复制代码
main(){
  Future x = Future((){
    print('异步任务1');
    scheduleMicrotask((){
      print('微任务1');
    });
  });
  x.then((value){
    print('异步任务1:返回结果');
  });
}


异步任务1x.then 是一个整体,所以先执行,后执行微任务1

示例三

js 复制代码
main(){
  Future x = Future((){
    print('异步任务1');
  });
  x.then((value){
    print('异步任务1:返回结果');
  });
  scheduleMicrotask((){
    print('微任务1');
  });
}

如果是同级的情况下,微任务>事件队列,微任务先执行,后执行事件队列中的异步

示例四,将耗时操作放入子线程compute,防止主线程卡UI

js 复制代码
return GestureDetector(
	 onTap: () {
	 	compute(func, 123);
	 },
)
func(){
	for(int i = 0;i<10000000;i++){}
}
相关推荐
默默_david5 小时前
14.5 绘制(一)绘制原理及Layer——问答
flutter
LinXunFeng20 小时前
Flutter 拖拉对比组件,换装图片前后对比必备
前端·flutter·开源
2501_9197490320 小时前
配置flutter鸿蒙的环境和创建并运行第一个flutter鸿蒙项目【精心制作】
flutter·华为·harmonyos
YUFENGSHI.LJ21 小时前
Flutter 如何使用fvm进行多项目sdk管理
flutter
开心-开心急了1 天前
关于Flutter与Qt for python 的一些技术、开源、商用等问题
开发语言·python·qt·flutter
猫林老师1 天前
Flutter for HarmonyOS开发指南(四):国际化与本地化深度实践
flutter·华为·harmonyos
猫林老师2 天前
Flutter for HarmonyOS 开发指南(一):环境搭建与项目创建
flutter·华为·harmonyos
sunly_2 天前
Flutter:视频预览功能
javascript·flutter·音视频
勤劳打代码2 天前
条分缕析 —— 通过 Demo 深入浅出 Provider 原理
flutter·面试·dart
2501_915918412 天前
Flutter 加固方案对比与实战,多工具组合的跨平台安全体系(Flutter App 加固/IPA 成品混淆/Ipa Guard CLI/自动化安全流程)
安全·flutter·ios·小程序·uni-app·自动化·iphone