我应该在Reactive Extensions(Rx)Subject <T>上调用Dispose

 陈家小女u 发布于 2023-01-08 13:32

我使用Reactive Extensions(Rx)Subject作为C#事件的直接替代品,如下所示:

public class MyClass
{
    private Subject subject;

    public IObservable WhenSomethingHappened
    {
        get { return this.subject.AsObservable(); }
    }

    private void OnSomethingHappened(string something)
    {
        this.subject.OnNext(something);
    }
}

请注意,我从未在我的主题上调用OnCompleted.MyClass应该实现IDisposable并调用this.subject.Dispose吗?这意味着使用Subject的任何实现都应该实现IDisposable.

我问的原因是IDisposable模式有点像疾病,如果有一件事实现它,使用它的一切都必须实现它.

1 个回答
  • 不,你真的不需要这样做.在担心内存使用和生命周期时,请考虑处理订阅,而不是主题.

    2023-01-08 13:36 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有