首页 > 建站教程 > dart >  dart笔记23:flutter的isolate使用正文

dart笔记23:flutter的isolate使用

flutter大大简化了isolate的使用方法,通过引入foundation.dart来使用isolate,通过computed来创建isolate。使用起来就像js的worker一样。
isolate不能滥用,只有非常耗时的任务(如图片裁切、数据加密等)时才建议使用,否则还是使用Future。
import 'package:flutter/foundation.dart';
import 'dart:io';

void main() {
  print('main isolate start');

  create_new_task();

  print('main isolate end');
}

void create_new_task() async {
  var str = 'new task finished';

  //compute启动一个新的isolate
  var result = await compute(doWork, str);
  print(result);
}

String doWork(String value) {
  print('new isolate start');
  sleep(Duration(seconds: 3));
  print('new isolate end');

  //当前isolate执行完毕,将值返回
  return 'complete:$value';
}