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}"); } } } }
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()}"); }
public void AddMessage(HelloWordMessage message) { m_queue.Enqueue(message); System.Console.WriteLine($"[{Thread.CurrentThread.ManagedThreadId}] added message {message.Id}"); }
public void SendMessage(HelloWordMessage message) { m_messagesStorage.AddMessage(message); m_messageController.Set(); }