【发布时间】:2014-08-19 09:48:15
【问题描述】:
有没有办法订阅一个方法,尽管它会在引发 onNext 时最后调用?
m_subject.Subscribe(() => Console.writeLine("firstSubscription");
m_subject.SubscribeLast(() => Console.writeLine("secondSubscription");
m_subject.Subscribe(() => Console.writeLine("thirdSubscription");
m_subject.OnNext();
// prints:
// firstSubscription
// thirdSubscription
// secondSubscription
【问题讨论】:
-
您能进一步解释一下吗?不太确定你想做什么!
-
我有一个处理资源的方法。必须在调用所有注册方法并使用资源后最后调用它。不知道订阅顺序
-
你放的所有代码,是在一个方法上吗?
-
我会有一个帮助类(ResourceManager 或其他东西)来包装资源并管理资源的订阅者。当没有更多订阅者时,它会释放资源。然后让您的 RX 查询向资源注册自己,并在完成后取消注册。
-
一般来说,我建议 Observable 序列 (
IObservable<T>) 的值应该是不可变的数据类型。这对我来说意味着他们不应该有像资源处理这样的变异/副作用行为。也许您想查看不同的设计,或者扩展您的问题的具体细节,以便提供更好的指导
标签: c# system.reactive