Example #1
0
        private static void Delegating()
        {
            // Get seconds to delay
            int delaySeconds = GetDelay();
            if (delaySeconds == 0) return;
            var delay = TimeSpan.FromSeconds(delaySeconds);

            // Get ints to observe
            int[] ints = GetInts();
            Console.WriteLine("\n\nEven numbers:");

            // Create observer and observable
            IObservable<int> observable = new ObservableEvens(ints);

            // Observe even ints
            //var observer = new EvensObserver(delaySeconds);
            observable.Subscribe(value =>
                {
                    // Add delay if item is multiple of 4
                    if (value % 4 == 0) Program.Delay(delay);

                    // Print value
                    Console.WriteLine(value);
                }, () => Console.WriteLine("Done"));
        }
Example #2
0
        /// <summary>
        /// Demonstrates standard observer pattern.
        /// </summary>
        /// <param name="async">True for async callbacks</param>
        private static void Observe(bool async)
        {
            // Get seconds to delay
            int delaySeconds = GetDelay();
            if (delaySeconds == 0) return;

            // Get ints to observe
            int[] ints = GetInts();

            // Create observable and observer
            IObservable<int> observable = new ObservableEvens(ints, async);
            IObserver<int> observer = new EvensObserver(delaySeconds);

            // Observe even ints
            Console.WriteLine("\n\nEven numbers:");
            observable.Subscribe(observer);
        }