Beispiel #1
0
        public void Setup()
        {
            _source    = new Subject <MarginUpdate>();
            _scheduler = new TestScheduler();

            _results = new List <int>();
            var bufferLength     = TimeSpan.FromTicks(50);
            var processFrequency = TimeSpan.FromTicks(20);

            _source
            .MaxValueRollingBuffer(bufferLength, processFrequency, _scheduler)
            .Subscribe(_results.Add);

            _scheduler.ScheduleRelative(10, () => _source.OnNext(DummyMarginUpdateSource.WithMargin(1)));
            // onnexts result @ 20
            _scheduler.ScheduleRelative(30, () => _source.OnNext(DummyMarginUpdateSource.WithMargin(2)));
            // onnexts result @ 40
            _scheduler.ScheduleRelative(50, () => _source.OnNext(DummyMarginUpdateSource.WithMargin(1)));
            // onnexts result @ 60
            _scheduler.ScheduleRelative(70, () => _source.OnNext(DummyMarginUpdateSource.WithMargin(4)));
            // onnexts result @ 80
            _scheduler.ScheduleRelative(70, () => _source.OnNext(DummyMarginUpdateSource.WithMargin(1)));
            // onnexts result @ 100
            _scheduler.ScheduleRelative(110, () => _source.OnNext(DummyMarginUpdateSource.WithMargin(3)));
            // onnexts result @ 120
            _scheduler.ScheduleRelative(130, () => _source.OnNext(DummyMarginUpdateSource.WithMargin(2)));
            // onnexts result @ 140
        }
Beispiel #2
0
        public MainWindow()
        {
            InitializeComponent();

            AllMargins.TextChanged += (_, __) => AllMargins.ScrollToEnd();

            Observable.Interval(TimeSpan.FromSeconds(1))
            .ObserveOnDispatcher()
            .Subscribe(_ => Clock.Text = DateTime.Now.ToString("HH:mm:ss"));

            _source = new DummyMarginUpdateSource();

            Run();

            var b = new Bootstrapper();

            b.Run();
        }