简体   繁体   English

如何观察事件的特定组合?

[英]How to observe a specific combination of events?

I have multiple observables made with Rx's FromEventPattern , eg: 我用Rx的FromEventPattern制作了多个可观察FromEventPattern ,例如:

var a = Observable.FromEventPattern(...); // event A
var b = Observable.FromEventPattern(...); // event B
var c = Observable.FromEventPattern(...); // event C

How do I observe specific sequences of these events? 如何观察这些事件的特定顺序?

Eg, I want to observe the case when A then C happened, but without B in between, in a particular limited time frame. 例如,我想观察一个情况,即在特定的有限时间内,发生了A到C的情况,但中间没有B。

Or: ABC then ABC then just B. 或者:先是ABC,然后是ABC,然后是B。

Does this work for you? 这对您有用吗?

var query = a.Select(_ => c.TakeUntil(b)).Switch();

Would this work for the 5 second time period? 这会在5秒钟内起作用吗?

var query = a
    .Select(_ => c
        .TakeUntil(b)
        .TakeUntil(Observable.Timer(TimeSpan.FromSeconds(5.0))))
    .Switch();

Otherwise you'd need to look at the Window or Join operators. 否则,您需要查看WindowJoin运算符。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM