首页 > 解决方案 > 你可以多次运行 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);
}

标签: dartdart-isolates

解决方案


您的程序在 Isolate 完成其工作之前退出。如果您添加,您可以确认这一点

await Future.delayed(Duration(seconds: 1));

在你的程序快结束的地方。

设置Isolates 通常有点挑战性,包括所有的SendPort东西等等。


推荐阅读