static void Main(string[] args)
        {
            XmlConfigurator.Configure();


            var logger = LogManager.GetLogger("SampleTextLogger");

            var loggerService = new LoggerService(logger);

            var quadraticProducer = new QuadraticProducer(loggerService);
            var cubicProducer     = new CubicProducer(loggerService);
            var badProducer       = new BadProducer(loggerService);

            var client = new Client("kisa");

            client.StartListenProducer(badProducer);

            Console.WriteLine("Start listening to bad producer...\nPress space bar to exit.");

            Task.Run(() =>
            {
                quadraticProducer.Run((point) => loggerService.Info($"Quadratic function {point}"));
            });

            Task.Run(() =>
            {
                cubicProducer.Run((point) => loggerService.Info($"Cubic function {point}"));
            });

            Task.Run(() =>
            {
                badProducer.Run((point) => loggerService.Info($"Bad function {point}"));
            });


            while (true)
            {
                if (Console.ReadKey().Key == ConsoleKey.Spacebar)
                {
                    quadraticProducer.IsContinue = false;
                    cubicProducer.IsContinue     = false;
                    badProducer.IsContinue       = false;
                }
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Press 'Esc' to stop producing points.");
            log4net.Config.XmlConfigurator.Configure();
            var loggerService = new LoggerService(log4net.LogManager.GetLogger("SampleLogger"));

            var reciprocalProducer = new ReciprocalProducer(loggerService);
            var sqrtProducer       = new SqrtProducer(loggerService);
            var badProducer        = new BadProducer(loggerService);
            var client             = new Client("Steve", loggerService);

            badProducer.OnPointProduced += client.OnPointReceived;

            Task.Run(() =>
            {
                reciprocalProducer.Run((point) => loggerService.Info($"Reciprocal producer made {point}"));
            });
            Task.Run(() =>
            {
                sqrtProducer.Run((point) => loggerService.Info($"Sqrt producer made {point}"));
            });
            Task.Run(() =>
            {
                badProducer.Run((point) => loggerService.Info($"Bad producer made {point}"));
            });

            while (true)
            {
                if (Console.ReadKey().Key == ConsoleKey.Escape)
                {
                    reciprocalProducer.KeepRunning = false;
                    sqrtProducer.KeepRunning       = false;
                    badProducer.KeepRunning        = false;
                    break;
                }
            }
        }
Example #3
0
        static void Main(string[] args)
        {
            XmlConfigurator.Configure();
            ILog           logger               = LogManager.GetLogger("TextLogger");
            LoggerService  loggerService        = new LoggerService(logger);
            FirstProducer  firstProducer        = new FirstProducer(loggerService);
            SecondProducer secondProducer       = new SecondProducer(loggerService);
            BadProducer    badProducer          = new BadProducer(loggerService);
            Client         clientForBadProducer = new Client();

            badProducer.OnGoodPointReceived += clientForBadProducer.GetGoodPoint;

            Task.Run(() =>
            {
                firstProducer.Run((point) => loggerService.Info($"First Function {point}"));
            });

            Task.Run(() =>
            {
                secondProducer.Run((point) => loggerService.Info($"Second Function {point}"));
            });

            Task.Run(() =>
            {
                badProducer.Run((point) => loggerService.Info($"BadProducer Function {point}"));
            });

            Console.ReadLine();

            secondProducer.IsContinue = false;
            firstProducer.IsContinue  = false;
            badProducer.IsContinue    = false;

            Console.WriteLine("Good Bay!");
            Console.ReadKey();
        }