diff --git a/encompass-cs/MessageManager.cs b/encompass-cs/MessageManager.cs index 5cadf61..f143946 100644 --- a/encompass-cs/MessageManager.cs +++ b/encompass-cs/MessageManager.cs @@ -1,3 +1,4 @@ +using System.Collections.Concurrent; using System; using System.Collections.Generic; using System.Linq; @@ -6,12 +7,12 @@ namespace Encompass { internal class MessageManager { - private readonly Dictionary> messageTypeToMessages = new Dictionary>(); + private readonly Dictionary> messageTypeToMessages = new Dictionary>(); internal void RegisterMessageType(Type messageType) { if (!messageTypeToMessages.ContainsKey(messageType)) { - messageTypeToMessages.Add(messageType, new List()); + messageTypeToMessages.Add(messageType, new ConcurrentStack()); } } @@ -19,12 +20,12 @@ namespace Encompass { var type = message.GetType(); - messageTypeToMessages[type].Add(message); + messageTypeToMessages[type].Push(message); } internal void AddMessage(TMessage message) where TMessage : struct, IMessage { - messageTypeToMessages[typeof(TMessage)].Add(message); + messageTypeToMessages[typeof(TMessage)].Push(message); } internal void ClearMessages()