コード例 #1
0
 private void ProcessMessage()
 {
     while (true)
     {
         HelloWordMessage message = m_messagesStorage.Take();
         if (message == null)
         {
             //Thread.Sleep(50);
             m_messageController.Wait();
         }
         else
         {
             try
             {
                 System.Console.WriteLine($"[{Thread.CurrentThread.ManagedThreadId}] process message {message.Id}");
                 string text = m_messageConverter.ConvertMessageToText(message);
                 System.Console.WriteLine(text);
                 m_logWriter.Log(text);
             }
             catch (Exception e)
             {
                 System.Console.WriteLine($"Exception {e.Message} in {e.StackTrace}");
             }
         }
     }
 }
コード例 #2
0
        public string ConvertMessageToText(HelloWordMessage message)
        {
            TextHelloWorldMessage textMessage = message as TextHelloWorldMessage;

            if (textMessage != null)
            {
                return($"[{textMessage.TimeStamp}][{textMessage.MessageType}] {textMessage.Id}: {textMessage.MessageText}");
            }
            DigitalHelloWorldMessage digitalMessage = message as DigitalHelloWorldMessage;

            if (digitalMessage != null)
            {
                return($"[{digitalMessage.TimeStamp}][{digitalMessage.MessageType}] {digitalMessage.Id}: {digitalMessage.MessageData}");
            }
            return($"unknown message {message.GetType()}");
        }
コード例 #3
0
 public void AddMessage(HelloWordMessage message)
 {
     m_queue.Enqueue(message);
     System.Console.WriteLine($"[{Thread.CurrentThread.ManagedThreadId}] added message {message.Id}");
 }
コード例 #4
0
 public void SendMessage(HelloWordMessage message)
 {
     m_messagesStorage.AddMessage(message);
     m_messageController.Set();
 }