// Получение сообщений из 1-го буфера,
        //      добавление к ним своей информации и добавление полученного сообщения во 2-ой буфер
        public void ConsumeProduceThread()
        {
            Random rnd = new Random();

            int    i = 1;
            string oldMessage, newMessage;

            while (true)
            {
                Thread.Sleep(rnd.Next(3000, 4000));

                TryingToGetMessageFromBuffer.Invoke("2-ой поток пытается забрать сообщение из 1-го буфера");
                oldMessage = _bufferToGetMessagesFrom.Pop();
                MessageGotFromBuffer.Invoke($"2-ой поток забрал сообщение \"{oldMessage}\" из 1-го буфера", true);

                Thread.Sleep(500);

                // Добавленная информация представляет из себя номер обрабатываемого данным потоком сообщения
                newMessage = oldMessage + $" - {i++}";

                AddedInfoToMessageAndTryingToAddItToBuffer.Invoke($"2-ой поток добавил к сообщению \"{oldMessage}\" свою информацию и пытается поместить получившееся сообщение \"{newMessage}\" во 2-ой буфер");

                _bufferToAddMessagesTo.Push(newMessage);
                MessageAddedToBuffer.Invoke($"2-ой поток поместил сообщение \"{newMessage}\" во 2-ой буфер", false);
            }
        }
示例#2
0
        // Получение сообщений из 2-го буфера,
        //      добавление к ним своей информации и его передача как параметра события для логов
        private void ConsumeMessage()
        {
            Random rnd = new Random();

            int    i = 1;
            string oldMessage, newMessage;

            while (true)
            {
                Thread.Sleep(rnd.Next(5000, 6000));

                TryingToGetMessageFromBuffer.Invoke("3-ий поток пытается забрать сообщение из 2-го буфера");
                oldMessage = _buffer.Pop();
                MessageGotFromBuffer.Invoke($"3-ий поток забрал сообщение \"{oldMessage}\" из 2-го буфера", false);

                // Добавленная информация представляет из себя номер обрабатываемого данным потоком сообщения
                Thread.Sleep(1000);
                newMessage = oldMessage + $" - {i++}";

                AddedInfoToMessage.Invoke($"3-ий поток добавил к сообщению \"{oldMessage}\" свою информацию, итоговое сообщение: \"{newMessage}\"", newMessage);
            }
        }