如何结束隔离以及隔离终止时如何获得通知

时间:2014-08-27 16:05:15

标签: dart dart-async dart-isolates

终止隔离

当我想结束在使用Isolate.spawn()Isolate.spawnUri()创建的服务器上启动的隔离时 我该如何终止隔离。

当异常未被捕获时,隔离内的

throw x终止隔离 但我希望有一个更优雅的解决方案。

isolate.kill()抛出Uncaught Error: Unsupported operation: kill

得到通知

我想当没有更多的异步操作处于活动状态时,隔离结束(类似于main),但我怎么知道隔离实际上是否已经终止?

当子隔离终止时,父隔离是否有办法得到通知? isolate.addOnExitListener(_sendPort);抛出Uncaught Error: Unsupported operation: addOnExitListener

是否有替代方法或者我必须等到支持这些方法?

1 个答案:

答案 0 :(得分:1)

来自https://code.google.com/p/dart/issues/detail?id=10977#c2

  

检测到Isolate终止之后终止的方法   成功创建的是使用Isolate.addOnExitListener(可能   如果需要知道它为什么,也可以使用Isolate.addErrorListener   终止)。开始隔离暂停,然后是未来   完成后,Isolate.spawnUri可以设置监听器   恢复孤立。

     

所以我们有办法,它仍然没有由VM / Dartium实现,但是   这是另一个问题。

另见