gpt4 book ai didi

c# - 关于使用 Publish().RefCount()

转载 作者:太空狗 更新时间:2023-10-29 20:27:41 27 4
gpt4 key购买 nike

我发现自己经常想使用 Publish().RefCount() 来“保护我的来源”。

例如,将一些传入的 IObservable json 转换为两个 IObservable 属性时:

var anon = source.Select(TranslateToAnonObject);
this.Xs = anon.Select(GetXFromAnonObject);
this.Ys = anon.Select(GetYFromAnonObject);

为了避免执行两次翻译,我很想在匿名定义后面放置一个 Publish().RefCount()

对于两个属性值也是一样的,以避免为每个订阅者单独执行 Get.. 函数。

事情是,它已经到了我无法真正看到很多我想要这个的地步。但如果这是正确的,它肯定会成为 Rx 中的默认值。我在想什么?

(思考:是不是因为我几乎只在处理“热门”可观察对象?)

最佳答案

您确实经常想这样做。事实上我写了一个 article在这一点上。它不是默认值的原因很简单,它不是一直都需要的(并且比关闭更容易省略);在很多情况下,它只会增加开销,并且在很多情况下需要具有连接控制的 Publish(),因为订阅者数量可能会降至零,并且重新订阅会产生意想不到的副作用,尤其是(如您所说)在处理冷可观察量时。

关于c# - 关于使用 Publish().RefCount(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20393285/

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