Ich möchte die Observable basierend auf einem Ereignis beenden, wenn ein Wert nicht innerhalb eines bestimmten Zeitraums empfangen wird.Wie beende ich eine heiße Observable?
// This will go on forever because it is a hot
// observable based on an event
// If a value has not been produced in, say, 2 seconds
// I would like to stop it and raise an OnCompleted
var observable = Observable.FromEvent(...);
Ich könnte ein TakeUntil
wie so tun, aber das wäre eine absolute Zeitdauer vom Beginn des Bezugs sein. Was ich will, ist, wenn ein Wert nicht zurückgegeben wurde, sagen wir, 2 Sekunden von dem Zeitpunkt, als der vorherige Wert generiert wurde, dann stoppen und ein OnCompleted
Ereignis auslösen.
Wenn von der Observablen 2 Sekunden lang kein Wert generiert wurde, stoppen und erhöhen Sie ebenfalls ein OnCompleted
Ereignis.
Wie würde ich das tun, ohne dass der Client-Code diesen Status beibehalten muss, zu welcher Zeit der letzte Wert generiert wurde?