TakeUntil没有记录的工作?

TakeUntil运算符的文档 (强调我的):

TakeUntil订阅并开始镜像源Observable。 它还监视您提供的第二个Observable。 如果第二个Observable发出一个项目或发送终止通知 ,则TakeUntil返回的Observable将停止镜像源Observable 并终止

如果这是真的,那为什么阻止?:

 Observable.Never() .TakeUntil(Observable.Empty()) .Wait(); 

Preston Guillot在评论部分就位。

让我们看一下 Observable.TakeUntil 的源代码 ,特别是代表“终结者” Observable class O 我们可以看到在O.OnNextO.OnError上发送了parent.OnCompleted通知。

因此,代码阻塞的原因是Observable.Empty (充当“终结符”)仅发出OnCompleted通知。