【发布时间】:2017-08-16 14:58:21
【问题描述】:
从下面显示的简单隔离代码中预期的“Hello world”并不起作用。
import 'dart:async';
import 'dart:isolate';
var mainReceivePort = new ReceivePort();
main() async {
await Isolate.spawn(hello, null);
await for (var msg in mainReceivePort) {
print(msg);
return;
}
}
hello(_) async {
var sendPort = mainReceivePort.sendPort;
sendPort.send("Hello world");
}
当对代码进行以下更改时,它会按预期工作
import 'dart:async';
import 'dart:isolate';
var mainReceivePort = new ReceivePort();
main() async {
await Isolate.spawn(hello, mainReceivePort.sendPort);
await for (var msg in mainReceivePort) {
print(msg);
return;
}
}
hello(sendPort) async {
sendPort.send("Hello world");
}
寻找线索。有什么想法吗?
【问题讨论】:
-
“没用”到底是什么意思?预期的行为是什么?实际行为是什么?
-
你为什么期望第一个例子,你通过
null而不是mainReceivePort.sendPort,来工作?
标签: dart dart-isolates