我想知道 Dart 程序何时终止。
采取以下程序:
import 'dart:isolate';
Future<void> calculateTheAnswer(SendPort port) async {
await Future.delayed(Duration(seconds: 1));
port.send(42);
}
void main() async {
var port = ReceivePort()..listen(print);
await Isolate.spawn(calculateTheAnswer, port.sendPort)
..addOnExitListener(port.sendPort, response: 100);
}
在这里,主隔离生成另一个隔离,该隔离在一秒后仅发送 42。发送答案后,隔离终止,导致退出侦听器触发。实际上,程序输出 42,然后输出 100,因此隔离终止。
但 Dart 程序仍在继续运行。为什么?