public FastProvider(IJointSpaceClient client) { Subject <Unit> observed = new Subject <Unit>(); IObservable <Unit> processedTrigger = Observable.When(Observable.And(observed.StartWith(Unit.Default), Observable.Interval(TimeSpan.FromMilliseconds(10)).StartWith(TaskPoolScheduler.Default.Now.Ticks)).Then((x, y) => x)); Processed = processedTrigger.SelectMany(_ => client.GetAmbilightProcessed()).Do(_ => observed.OnNext(Unit.Default)).Publish().RefCount(); }
public PollingProvider(IJointSpaceClient client) { Processed = Observable.Interval(TimeSpan.FromMilliseconds(50)).SelectMany(_ => client.GetAmbilightProcessed()).Publish().RefCount(); }