首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rx中的Subject<T>

Rx中的Subject<T>
EN

Stack Overflow用户
提问于 2012-05-14 18:25:43
回答 2查看 181关注 0票数 1

Subject在Rx中的实际用途是什么。我在101个样本中找到了一个样本,但我认为这并不能让我清楚地知道该将其应用于何处。请任何人张贴一些简单的例子,演示了主题的工作在处方。我在windows phone的上下文中使用了这个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-15 01:51:11

Subject<T>是Rx的List<T> -它只是一个可以手动发送信号的IObservable:

代码语言:javascript
复制
var subj = new Subject<int>();
subj.Subscribe(Console.WriteLine);

subj.OnNext(4);
subj.OnNext(5);
subj.OnCompleted();

>>>  4
>>>  5

它对于“包装”使用非Rx模式的异步方法非常有用,比如回调或APM。查看this example from my book

票数 7
EN

Stack Overflow用户

发布于 2012-07-06 21:58:51

当前的指导方针是,您应该避免在代码库中使用主题。这就是我的观点,最近我让Bart De Smet (Rx的作者)口头上同意我的观点。

大多数时候我看到主题的用法,它可以被Observable.Create(IObserver)或其他工厂,如FromEventPattern,Timer,FromAPM等所取代。

请看我关于这个问题的博客文章:

http://www.introtorx.com/Content/v1.0.10621.0/02_KeyTypes.html

http://www.introtorx.com/Content/v1.0.10621.0/04_CreatingObservableSequences.html#CreationOfObservables

http://www.introtorx.com/Content/v1.0.10621.0/18_UsageGuidelines.html

本指南有两个很好的例外:

  1. 如果您在使用BehaviorSubject运算符时将BehaviorSubject用作属性主题的支持字段,则使用
  2. 可以提供您正在查找的功能集您只需使用烘焙的主题,如.Replay(),.PublishLast()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10581544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档