public class QueueManager<T>
{
private ConcurrentQueue<T> queue = new ConcurrentQueue<T>();
/// <summary>
/// 添加
/// </summary>
/// <param name="p"></param>
public void Add(T p)
{
queue.Enqueue(p);
}
/// <summary>
/// 获取
/// </summary>
/// <returns></returns>
public T Get()
{
queue.TryDequeue(out T t);
return t;
}
/// <summary>
/// 是否存在
/// </summary>
/// <param name="p"></param>
/// <returns></returns>
public bool IsExist(T p)
{
return queue.Contains(p);
}
/// <summary>
/// 是否有元素
/// </summary>
/// <returns></returns>
public bool IsHaveElement()
{
return queue.Count <= 0 ? false : true;
}
/// <summary>
/// 队列数量
/// </summary>
/// <returns></returns>
public int GetCount()
{
return queue.Count;
}
/// <summary>
/// 清空
/// </summary>
public void Clear()
{
T t = default(T);
while (queue.TryDequeue(out t))
{
}
}
}