如何阻止直到RX流中发生事件?

Con*_*ngo 2 .net c# reactive-programming system.reactive

使用Microsoft Reavtive Extensions(RX),我想知道它是否有可能在事件发生之前被阻止?

像这样的东西:

observableStream.BlockUntilTrue(o => o.MyProperty == true);
Run Code Online (Sandbox Code Playgroud)

我尝试过的

我已经尝试过observableStream.TakeUntil(o => o.MyProperty == true);,但这会立即退出。

Mar*_*age 5

阅读您的评论后,我已将答案重写。在您的情况下,您可以使用,First但是它将RX的异步特性更改为阻塞的同步代码。我想这就是您的问题。

var firstValue = observableStream.
  .Where(o => o.MyProperty)
  .First();
Run Code Online (Sandbox Code Playgroud)

对to的调用First将阻止并等待第一个值从可观察的序列中到达,这似乎是您想要的。