Beispiel #1
0
        static void Main(string[] args)
        {
            ISingleConsumerQueue <TextFileContext> consumerQueue = new MonitorSingleConsumerQueue <TextFileContext>(new TextFileConsumer(FileName));
            IThreadWorker producerThread = new TextFileContextProducer(consumerQueue);
            IThreadWorker consumerThread = consumerQueue;

            try
            {
                consumerThread.Start();
                producerThread.Start();

                Console.WriteLine($"({Thread.CurrentThread.Name}): Модель запущена. Данные пишутся в {Path.Combine(Directory.GetCurrentDirectory(), FileName)}");
                Console.WriteLine($"({Thread.CurrentThread.Name}): Нажмите любую клавишу, чтобы остановить модель.");
                Console.ReadKey(true);
                Console.WriteLine($"({Thread.CurrentThread.Name}): Остановка модели...");
            }
            finally
            {
                producerThread.Dispose();
                consumerThread.Dispose();

                producerThread.Join();
                consumerThread.Join();

                Console.WriteLine($"({Thread.CurrentThread.Name}): Модель остановлена. Нажмите любую клавишу для выхода...");
                Console.ReadKey(true);
            }
        }