using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SKMC.Api.Common.Types { public class MessageQueue { private static MessageQueue instance; private readonly BlockingQueue queue = new BlockingQueue(); private MessageQueue() { } public static MessageQueue Instance() { if (instance == null) instance = new MessageQueue(); return instance; } public int Count { get => queue.Count; } public void Put(T t) { queue.Add(t); } public T Get() { return queue.Take(); } public void Clear() { while (queue.Count > 0) { Get(); } } } }