using System.Collections.Generic;
namespace Common.system
{
///
/// 队列操作类 默认队列数1000
/// 创建人:赵耀
/// 创建时间:2019年8月22日
///
///
public class QueueSync
{
int _maxcount;
private Queue _queue = new Queue();
///
/// 默认1000
///
public QueueSync() : this(1000) { }
///
/// 定义一个指定容量的队列
///
///
public QueueSync(int maxcount)
{
_maxcount = maxcount;
}
///
/// 入队列
///
///
///
public bool Enqueue(T obj)
{
lock (this)
{
if (_queue.Count > _maxcount)
{
_queue.Dequeue();
}
_queue.Enqueue(obj);
}
return true;
}
///
/// 出队列
///
///
public T Dequeue()
{
T obj = default(T);
lock (this)
{
try
{
obj = _queue.Dequeue();
}
catch
{
// ignored
}
}
return obj;
}
}
}