我在我的状态小部件中通过Isolate.spawn()
创建一个隔离。
小部件处理完毕后,GC会自动清洗隔离物吗? 还是有必要手动杀死隔离物?
如果需要手动清洁,isolate.kill()
是否足够?receivePort.close()
呢? 哪个操作就足够了,isolate.kill()
还是receivePort.close()
? 或者要么就足够了?还是两者都需要?
如果两者都需要,先哪个操作,哪个第二个? 订单重要吗?
在生成的隔离中,我分配了一些NATIVE结构和数组。 当隔离关闭时,这些本机结构和数组会自动释放吗? 还是有必要手动释放这些本机指针?
如果需要手动释放,在receivePort.listen()
中注册的 [onDone] 函数中释放这些指针是否安全? 而且,打电话给isolate.kill(priority: Isolate.immediate)
安全吗?Isolate.immediate
会确保指针的释放吗? 还是我应该选择Isolate.beforeNextEvent
?
读取compute
函数的实现。我可以肯定地说,您需要手动退出隔离。使用isolate.kill()
或Isolate.exit()