Example #1
0
        static void Main(string[] args)
        {
            IDisplay display = new ScreenDisplay();

            CheckerContainer checkerContainer = FullCheckerContainer();

            CooperateMachines work = new CooperateMachines(display, checkerContainer);

            StartProgramm(work);
        }
Example #2
0
        /// <summary>
        /// Начало работы метода по выходу из программы происходит до начала прямой работы конвеера
        /// сделано для того, чтобы он не успел перехватить управление главным потоком
        /// </summary>
        static void StartProgramm(CooperateMachines work)
        {
            Action <object> action = (object obj) =>
            {
                ExitProgramm(work);
            };

            Task stoppingTask = Task.Factory.StartNew(action, "Stopping");

            StartWorking(work);
        }
Example #3
0
        static void ExitProgramm(CooperateMachines work)
        {
            while (true)
            {
                ConsoleKeyInfo key = Console.ReadKey(true);

                if (key.Key == ConsoleKey.Escape || key.Key == ConsoleKey.Backspace)
                {
                    work.EndWork();
                    Environment.Exit(0);
                }
            }
        }
Example #4
0
        static void StartWorking(CooperateMachines work)
        {
            try
            {
                work.StartWork();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Unnexpected error:\n" + ex.Message);

                Environment.Exit(0);
            }
        }