我最近开始使用 Dart (www.dartlang.org http://www.dartlang.org)并且到目前为止真的很喜欢它。
一个非常有前途的功能是隔离,但我不确定如何开始。
到目前为止我找到的文档来自重大更改之前(重大变更:dart:isolate https://groups.google.com/a/dartlang.org/forum/#!msg/misc/EVUMkZXFXtY/0Z5kFP1-KFIJ)于 2013 年 10 月。这封“重大变更”电子邮件中的信息相当复杂,看起来新的 api 比旧的更复杂。
我有一些问题:
- dart:isolate api 稳定吗?
- 有没有最新的文档?
- 有工作示例吗?
我尝试了这个例子并且它有效https://gist.github.com/olostan/7883315 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 在虚拟机中更稳定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)