У меня есть несколько наблюдаемых, сделанных с помощью Rx FromEventPattern
, например:
var a = Observable.FromEventPattern(...); // event A
var b = Observable.FromEventPattern(...); // event B
var c = Observable.FromEventPattern(...); // event C
Как я могу наблюдать определенные последовательности этих событий?
Например, я хочу наблюдать случай, когда A тогда C произошел, но без B между ними, в определенный ограниченный промежуток времени.
Или: ABC тогда ABC тогда просто B.
Это работает для вас?
var query = a.Select(_ => c.TakeUntil(b)).Switch();
Будет ли это работать в течение 5 секунд?
var query = a
.Select(_ => c
.TakeUntil(b)
.TakeUntil(Observable.Timer(TimeSpan.FromSeconds(5.0))))
.Switch();
В противном случае вам нужно будет посмотреть на операторы Window
или Join
.
A -> [no B] -> C withing 5 secs
?