作为一个通用的编码指南,什么时候应该使用响应式扩展中的BooleanDisposable?
发布于 2015-09-30 17:20:54
好了,对问题没有太多的反馈,我想这是一个小众,它是这样的:
如果你使用volatile bool _isDisposed与BooleanDisposable相比,前者的设计更简洁。
有关volatile关键字的更多信息:Here
发布于 2015-10-01 07:37:54
通常,处理IDisposable should be idempotent -您应该能够多次处理它,而不会产生负面后果。
由此产生的后果是,您几乎从不关心IDisposable是否已被释放。您只需在完成后将其处理即可。
在我使用Rx的时候,我还没有遇到过需要知道Disposable实例是否已经被释放的情况。通常,来自Rx的Disposable对象是组合的,然后从订阅返回。知道Disposable是否已被释放很少是有用的信息。
如果您需要在Disposable被释放时执行某些操作,那么您可以只使用Disposable.Create并在操作中执行您需要执行的任何操作。
所以我要说的关于BooleanDisposable的唯一准则是,如果你认为你需要它,你的设计可能会比它需要的更复杂。在这方面,类似于Finalizer的指导方针。
https://stackoverflow.com/questions/32845030
复制相似问题