C#中的阻塞队列,在进行生产者、消费者消息通信时,可以大幅提升效率,队列无数据或满时进行阻塞。
/// <summary>
/// Description: 阻塞队列(泛型)
/// 主要实现了队列为空时出队阻塞,队列已满时入队阻塞
/// Author: BruceZhang
/// Date:2017-4-18
/// </summary>
public class BlockingQueue<T>
{
#region Fields & Properties
//队列名称
private string m_name;
//队列最大长度
private readonly int m_maxSize;
//FIFO队列
private Queue<T> m_queue;
//是否运行中
private bool m_isRunning;
//入队手动复位事件
private ManualResetEvent m_enqueueWait;
//出队手动复位事件
private ManualResetEvent m_dequeueWait;
//输出日志
public Action<string> m_actionOutLog;
/// <summary>