TakeUntil没有记录的工作?
从TakeUntil
运算符的文档 (强调我的):
TakeUntil订阅并开始镜像源Observable。 它还监视您提供的第二个Observable。 如果第二个Observable发出一个项目或发送终止通知 ,则TakeUntil返回的Observable将停止镜像源Observable 并终止 。
如果这是真的,那为什么阻止?:
Observable.Never() .TakeUntil(Observable.Empty()) .Wait();
Preston Guillot在评论部分就位。
让我们看一下 Observable.TakeUntil
的源代码 ,特别是代表“终结者” Observable
class O
我们可以看到在O.OnNext
和O.OnError
上发送了parent.OnCompleted
通知。
因此,代码阻塞的原因是Observable.Empty
(充当“终结符”)仅发出OnCompleted
通知。