2016-07-24 5 views
1

特定の時間枠内に値が受信されない場合、イベントに基づいて観測可能なものを終了したいと思います。どのように私は熱い観測を終了するのですか?

// 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(...); 

私はそうのようなTakeUntilを行うことができますが、それは、サブスクリプションの開始からの絶対時間帯になります。私が欲しいのは、前回の値が生成されてから2秒後に値が返されなかった場合には、OnCompletedイベントを停止して起きさせることです。

observableによって2秒間値が生成されなかった場合は、OnCompletedイベントを停止して起き上がらせてください。

クライアントコードで最後の値が生成された時刻をこの状態に維持する必要がない場合、どうすればよいですか?

答えて

2

はこれを試してみてください:

var query = observable.Timeout(TimeSpan.FromSeconds(2.0), Observable.Empty<int>()); 

だけで観測可能ソースが何であれタイプでintを交換してください。

関連する問題