gpt4 book ai didi

.net - Rx 订阅和垃圾收集

转载 作者:行者123 更新时间:2023-12-04 23:17:39 24 4
gpt4 key购买 nike

是否需要赋值IObservable.Subscribe返回的IDisposable?到一个变量以保护订阅不被垃圾收集,或者事件订阅的存在是否足够?

我的用例:我从现有的 observable 创建了一个一次性的 observable(示例中的 myObservable):

myObservable.Take(1).Subscribe(fun v -> printfn "One-shot: %A" v) |> ignore

最佳答案

是的,活跃订阅的存在就足够了。对订阅的 GC 防止引用链最终从第一个 observable 的源开始,因此当流源处于事件状态时,您的订阅也处于事件状态。如果流源本身被收集,那么您的订阅将随之消失,但没关系,因为无论如何都不会再次调用它。

另一方面,一旦您的订阅收到一个脉冲,.Take(1)实现会将它与源断开连接,允许它被收集。

关于.net - Rx 订阅和垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36224756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com