Exemplo n.º 1
0
        private static void TimerTest()
        {
            SpeedFaker speedFaker = new SpeedFaker();


            IObservable <float> source = Observable.Interval(TimeSpan.FromSeconds(1))
                                         .Select(_ => speedFaker.Generate().Value);

            // .Select(_ => 10f);


            var filtered = source
                           .Where(speed => speed > 10);


            filtered
            .Subscribe(speed =>
            {
                Console.BackgroundColor = ConsoleColor.Red;
                Console.WriteLine($"#{Thread.CurrentThread.ManagedThreadId} ALERT {speed}");
                Console.ResetColor();
            }
                       );



            source
            //    .DistinctUntilChanged()
            .Subscribe(item => Console.WriteLine($"#{Thread.CurrentThread.ManagedThreadId} Speed {item}"));
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            // ObserverTest();

            // TimerTest();

            SpeedFaker speedFaker = new SpeedFaker();

            var source = new ReplaySubject <float>(3);

            source.OnNext(100);
            source.OnNext(150);
            source.OnNext(100);
            source.OnNext(150);
            source.OnNext(50);
            source.OnNext(650);
            source.OnNext(700);
            source.OnNext(850);
            source.OnNext(100);
            source.OnNext(150);

            source.Subscribe(item => Console.WriteLine($"S1 #{Thread.CurrentThread.ManagedThreadId} {item}"));
            source.Subscribe(item => Console.WriteLine($"S2 #{Thread.CurrentThread.ManagedThreadId} {item}"));

            source.OnNext(250);



            Console.WriteLine("Press any key to exit.");

            Console.ReadLine();
        }