我最近开始学习Dart(www.dartlang.org),到目前为止,我真的很喜欢它。其中一个非常有前途的功能是隔离区(isolates),但我不确定如何开始。
迄今为止我找到的文档来自2013年10月的破坏性变更(BREAKING CHANGE: dart:isolate)之前。这封“破坏性变更”电子邮件中的信息相当复杂,而且看起来新的API比旧的API更加复杂。
我有一些问题:
迄今为止我找到的文档来自2013年10月的破坏性变更(BREAKING CHANGE: dart:isolate)之前。这封“破坏性变更”电子邮件中的信息相当复杂,而且看起来新的API比旧的API更加复杂。
我有一些问题:
- dart:isolate API稳定吗?
- 有没有最新的文档?
- 是否有任何可用的工作示例?
spawnFunction()
不受支持,即使实际上使用了spawn()
也会抛出异常。我对这种架构没有更多的信息。我建议在你所引用的Dart组中发布一个问题,这个问题与BREAKING CHANGE
有关。 - Günter ZöchbauerIsolate.spawnUri
的额外开销是1)将您的代码放在单独的库中2)处理告诉您孵化的隔离是否良好的“Future”,从那时起,它就完全相同了。 - Argenti ApparatusIsolate.spawn
行后添加sleep(new Duration(seconds: 5));
,那么执行将在生成之前暂停。为什么?如何创建循环呢? - OZ_spawn
是异步的,这意味着它会在当前的“执行线程”执行所有同步代码后执行,但sleep
会暂停当前的“线程”,因此所有进一步的执行都将被阻止,直到sleep
完成。您可以使用new Future.delayed(new Duration(seconds: 5), () { your delayed code here;});
来延迟在isolate.spawn()
后执行代码。在生产代码中应尽量避免使用sleep
。 - Günter Zöchbauer