我最近开始使用Dart(www.dartlang.org)并且到目前为止非常喜欢它。 一个非常有前途的功能是隔离,但我不知道如何开始。
到目前为止,我发现的文档是在2013年10月发生重大变化(BREAKING CHANGE: dart:isolate)之前。此“重大变化”电子邮件中的信息非常复杂,看起来新api比老。
我有一些问题:
感谢您的帮助, 亨德里克·扬
答案 0 :(得分:3)
我尝试了这个例子,它有效https://gist.github.com/olostan/7883315
import "dart:isolate";
void main() {
print("Starting");
var sPort = new ReceivePort();
SendPort rPort;
sPort.listen((msg) {
if (msg is SendPort) {
print("Host got port. sending back");
rPort = msg;
rPort.send("Hello!");
}
else print("Host got $msg");
rPort.send(null);
sPort.close();
});
Isolate.spawn(test,sPort.sendPort);
}
void test(sender) {
var rPort = new ReceivePort();
sender.send(rPort.sendPort);
rPort.listen((msg){
print("Worker got $msg");
if (msg!=null)
sender.send("I am worker");
else rPort.close();
});
}
隔离物似乎没有被过多使用,因此可能仍然存在一些错误
我记得读到的最新问题是调试在隔离区中运行的代码。我不知道这是否已经解决了。
这也取决于您是否要在服务器或浏览器中使用隔离
AFAIK在VM中更稳定。