Isolate 使用
Future testIsolate() async {
ReceivePort receivePort = ReceivePort();
Isolate isolate = await Isolate.spawn(_test1Isolate,receivePort.sendPort);
var message = receivePort.listen((message){
print('message : $message');
// 最后才执行
receivePort.close();
isolate.kill();
});
print('4');
return message;
}
/// 使用
void main(List<String> arguments) async {
int count = 0;
StreamSubscription message = await demo_1.testIsolate();
scheduleMicrotask(() {
message.onData((data) {
count = data;
print('Hello world: $data');
});
});
await Future((){
print('Hello world: 1 $count');
});
print('Hello world: 2 $count');
}
注意:需要手动kill
compute 使用
Future testCompute() async {
late int count;
count = await compute(_test1Compute(),111);
return count;
}
注意:不需要手动kill