dart - 你可以多次运行 Isolate.spawn 吗?
问题描述
这是我用来学习隔离的简单代码,我生成了两次,但第二次生成没有显示任何内容,这里有什么错误吗?谢谢
import 'dart:isolate';
Future<void> main() async {
print('start');
await Isolate.spawn(echo, 'Dart');
await Isolate.spawn(echo, 'Flutter'); // why this 2nd spawn not showing up?
print('end');
}
void echo(msg) {
print(msg);
}
解决方案
您的程序在 Isolate 完成其工作之前退出。如果您添加,您可以确认这一点
await Future.delayed(Duration(seconds: 1));
在你的程序快结束的地方。
设置Isolate
s 通常有点挑战性,包括所有的SendPort
东西等等。