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';
} 