我发现自己经常想要使用Publish().RefCount()来“保护我的资源”.
例如,将一些传入的IObservable json转换为两个IObservable属性时:
var anon = source.Select(TranslateToAnonObject); this.Xs = anon.Select(GetXFromAnonObject); this.Ys = anon.Select(GetYFromAnonObject);
为了避免两次执行翻译,我很想在anon定义后面放置一个Publish().RefCount().
两个属性值都是一样的,以避免为每个订阅者单独执行Get ..函数.
问题是,它已经到了我无法真正看到许多我不想要的情况.但如果这是正确的,那肯定是Rx的默认值.我在想什么?
(想一想:是因为我几乎只与’热’观察者合作?)