【发布时间】:2019-12-06 20:22:26
【问题描述】:
我试图了解何时是在传递给Observable.Create 的函数中返回一次性的好时机,而不是通过using 语句在范围内处置任何资源。
对于Observable 是无限流的情况,是否会返回更多一次性用品?即使是这样,我也不明白即使流过早关闭,using 块仍不会释放资源
【问题讨论】:
-
您是否担心不处置一次性订阅可能产生的后果?
-
@TheodorZoulias 也许这更像是一个懒惰vs-eager清理的问题?我只是没有真正在网上看到任何建议/最佳实践来解释什么时候该做什么以及这样做的实际原因。
-
我认为在 RX 中使用 Disposables 仅用于取消订阅目的,而不是用于释放非托管资源。
-
@TheodorZoulias - 可以有托管资源 - 特别是对于基于时间的可观察对象。
-
您永远不应该在一次性管道中使用
using。始终使用Observable.Using。如果我理解你的问题,你正在写一个Observable.Create,你在Create内的using语句中调用o.OnNext和o.OnCompleted?如果是这样,请停止它,因为它会导致您的 observable 在订阅完成之前运行完成。
标签: c# reactive-programming system.reactive