Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何结束隔离以及如何在隔离终止时获得通知 终止隔离_Dart_Dart Async_Dart Isolates - Fatal编程技术网

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

Dart 如何结束隔离以及如何在隔离终止时获得通知 终止隔离,dart,dart-async,dart-isolates,Dart,Dart Async,Dart Isolates,当我想结束在使用isolate.spawn()或isolate.spawnUri()创建的服务器上启动的隔离时 如何终止隔离 throw x在异常未捕获时终止隔离。 但我希望有一个更优雅的解决方案 隔离.kill()抛出未捕获错误:不支持的操作:kill 得到通知 我猜当没有更多的异步操作处于活动状态时,隔离将结束(类似于main),但我如何知道隔离是否已实际终止 当子隔离终止时,是否有方法通知父隔离? isolate.addOnExitListener(\u sendPort)抛出未捕获错误:

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

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

隔离.kill()
抛出
未捕获错误:不支持的操作:kill

得到通知 我猜当没有更多的异步操作处于活动状态时,隔离将结束(类似于
main
),但我如何知道隔离是否已实际终止

当子隔离终止时,是否有方法通知父隔离?
isolate.addOnExitListener(\u sendPort)抛出未捕获错误:不支持的操作:addOnExitListener

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

来自

检测隔离被删除后终止的方法 成功创建的是使用Isolate.addOnExitListener(可能是 如果需要了解原因,请隔离.addErrorListener 终止)。启动隔离暂停,然后当未来 您可以设置侦听器,然后 继续隔离

所以我们有一种方法,它仍然不是由VM/Dartium实现的,而是 这是另一个问题

另见


为了澄清,您想让隔离A知道隔离B是否已关闭?而且,我们可能应该把这个问题分成两个独立的问题。主隔离A产生一个新的隔离B。完成Bs工作后,应该结束。A实际上并不需要通知,这只是为了验证结束隔离B的方法是否真的如预期的那样工作。@GünterZöchbauer是问题的第二部分,是关于类似于
未来隔离.terminate()
?我认为,如果隔离没有处于无响应状态,它就不应该被外部终止。否则它会破坏封装,因为您的代码假定隔离B没有分配的资源(如DB连接、套接字等),应该正确释放这些资源。@JAre您当然是对的。我尝试子隔离体B向父隔离体a发送消息,通知它B已准备好被杀死,但不支持杀死。我在类或实例上找不到terminate。可能是@lrn可以帮助解决这个问题。