sco*_*obi 7 .net system.reactive
给定一个BehaviorSubject,调用所有这些不同函数之间的实际区别是什么?
假设我理解正确,他们应该做同样的事情,给定BehaviorSubject.
如果是这样,那么哪个电话是最合适的(我的意思是:哪个最符合我的意图)?也许是第一个还是一个
如果没有,那么实际的差异是什么?
First,Last和Single是阻塞的; 建议改用Take(1),这样就可以得到一个IObservable.链接查询运算符时,建议避免使用First,Last和Single,因为退出monad的安全性...也就是说你有阻塞副作用.有关详细信息,请参阅http://blogs.msdn.com/jeffva/archive/2009/12/09/first-last-contains-etc-can-be-extremely-dangerous-yet-extremely-useful.aspx.
根据最新发布的说明,MostRecentValue和LatestValue已从最新版本的Rx中删除,因为它们也是阻塞的,因此唯一的阻塞运算符是First,Last和Single(以及xxxOrDefault变体).
MostRecent将返回最后一个采样值,就像你调用它一样(并且它需要一个initialValue来保证它永远不会等待),即"没有消耗",而Latest会等到一个值到达然后返回它"with consumption" - 也就是说,如果再次调用Latest,它将不会返回与上次调用相同的值,它将等到下一个值到达时,如果有的话.