Boolean一次性使用指南

问题描述 投票:0回答:2

作为一般编码指南,何时应该使用反应式扩展中的

BooleanDisposable

来源: https://github.com/dotnet/reactive/blob/main/Rx.NET/Source/src/System.Reactive/Disposables/BooleanDisposable.cs

文档: https://github.com/dotnet/reactive/blob/main/Rx.NET/Documentation/IntroToRx/B_Disposables.md

c# .net system.reactive
2个回答
0
投票

好吧,对问题的反馈不多,我想它有点小众,就这样:

如果您使用

volatile bool _isDisposed
BooleanDisposable
相比,前者是一个更干净的设计。

有关 volatile 关键字的更多信息:这里


0
投票

一般来说,处置 IDisposable 应该是幂等的 - 您应该能够多次处置它而不会产生负面后果。

其后果是你几乎从不关心 IDisposable 是否已被处置。完成后只需将其丢弃即可。

在我使用 Rx 的过程中,我还没有遇到过需要知道 Disposable 实例是否已经被释放的情况。通常,来自 Rx 的 Disposable 对象被组合,然后从订阅中返回。了解一次性用品是否已被处置很少是有用的信息。

如果您需要在 Disposable 被 Dispose 时执行某些操作,那么您可以使用 Disposable.Create 并在操作中执行您需要执行的任何操作。 因此,我对 BooleanDisposable 的唯一指导方针是,如果您认为需要它,您的设计可能会比需要的更复杂。在这方面,类似于终结器的指南。

© www.soinside.com 2019 - 2024. All rights reserved.