我想你应该澄清你的问题。 “处理行为”的含义并不完全清楚。
调用使用Observable.Finally
诉讼已提出,但这一行动将在第一下列条件满足运行:
- 可观察到的发送
OnCompleted()
- 可观察到的发送
OnError()
- 订阅手柄被丢弃。
即你不能保证,当你呼吁订阅句柄Dispose
的动作将被执行精确;它可能已经运行 - 但拨打Dispose
可确保在呼叫Dispose
返回之前调用它。
这可能是你所需要的 - 但是考虑你的话,你只希望动作在过去的这些情况下运行 - 在手柄脱手,那么你就需要附加的动作到订阅句柄本身,即:
var otherDisposable = /* your observable */;
Action disposingAction =() => Console.WriteLine("I am disposed!");
var subscription = otherDisposable.Subscribe(/* set your handlers here */);
var disposable = new CompositeDisposable(
subscription,
Disposable.Create(disposingAction));
/* The disposingAction is *only* run when this is called */
disposable.Dispose();
我想不出什么情况下会需要,虽然这个,我不知道是否Observable.Finally
,卡洛斯的建议,是一个更适合!
我的问题是:如何调用当我调用_sub.Dispose(); _该处置方法内将被调用的操作。 –
你是什么意思?你可以把你想要的任何动作放在你有'/ * ... * /' –