ここで Rx の妥当な限界を押し広げているのかもしれませんが、私がしようとしているのは、リモート ステータスをポーリングすることですが、ポーリングを妥当なものにレート制限します。
私が現在持っているものの擬似コード:
IObservable<data> RemoteObservable(Remote remote)
{
var onceonly = Observable.FromAsyncPattern(remote.Begin, remote.End);
return Observable.Defer(() => onceonly())
.ObserveOn(Scheduler.ThreadPool)
.Repeat();
}
Throttle
またはInterval
を使用することが役立つかどうかはわかりません。私の考えでは、スロットリングとは受信イベントを制限することであり、リピート レートを制限することではありません。
EDIT : 以下のサブクエスチョンについて別の質問をしたり、答えたりしました。.
サブ質問: この種の Observable で 2 つのサブスクリプションを許可する方法はありますか? UIにステータスを継続的に表示したいだけでなく、いくつかのアクティビティ中にステータスを監視したいのでお願いします(Observableでこれをやろうとしている理由の1つです)。