1

终止隔离

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

throw x当异常未被捕获时,内部隔离终止隔离。
但我希望有一个更优雅的解决方案。

isolate.kill()投掷Uncaught Error: Unsupported operation: kill

得到通知

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

有没有办法让父隔离在子隔离终止时得到通知? isolate.addOnExitListener(_sendPort);投掷Uncaught Error: Unsupported operation: addOnExitListener

?

是否有其他方法或者我必须等到这些方法得到支持?

4

1 回答 1

1

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

检测 Isolate 在成功创建后终止的方法是使用 Isolate.addOnExitListener (如果需要知道它终止的原因,可能还有 Isolate.addErrorListener )。启动隔离已暂停,然后当 Isolate.spawnUri 的 Future 完成时,您可以设置侦听器,然后恢复隔离。

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

也可以看看

于 2014-10-06T10:57:52.703 回答