Flutter computer 函数

系统 API:computer 函数:

我们自己 new 一个 Isoalte 并实现通讯,多少有点麻烦,从封装的角度看其中代码基本是重复的,所以 Google 就提供了一个 API 来干这事:compute 方法

compute 方法是 Flutter 提供给我们的(记住不是 Dart),compute 内部会创建一个 Isolate 并返回计算结果,体验上和一次性线程一样,性能多少有些浪费,但是也有使用范围

compute(function,value) compute 函数接受2个参数,第一个就是新线程的核心执行方法,第二个是传递过新线程的参数,可以是任何类型的数据,几个也可以,但是要注意,function 函数的参数设计要和 value 匹配

compute 方法在 import ‘package:flutter/foundation.dart’ 这个包里面.

例子:

import 'dart:io';

import 'dart:isolate';

import 'package:flutter/foundation.dart';

void newTask() async {

print("开始耗时计算,当前 isolate = ${Isolate.current.toString()}");

var result = await compute(getName, "name");

print(result);

}

String getName(String name) {

print("正在获取结果中...,当前 isolate = ${Isolate.current.toString()}");

sleep(Duration(seconds: 2));

return "Name";

}