| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace SKMC.Api.Common.Types
- {
- public class MessageQueue<T>
- {
- private static MessageQueue<T> instance;
- private readonly BlockingQueue<T> queue = new BlockingQueue<T>();
- private MessageQueue() { }
- public static MessageQueue<T> Instance()
- {
- if (instance == null) instance = new MessageQueue<T>();
- 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();
- }
- }
- }
- }
|