该类库包含线程安全的队列组件。

   1.1.1          ThreadSafeQueue

ThreadSafeQueue是基于Queue开发的线程安全的队列,可以保存数据的引用(非值拷贝),所有数据都以object类型保存在队列中,在出队后仍为object类型,如果读写非object数据时需要类型强转。该队列在容量不够时会自动扩展。

FileLogConfig

方法名

功能描述

Clear

清空队列

Enqueue

数据入列(对象的引用)

Dequeue

数据出列

   1.1.2          CircularQueue

CircularQueue是基于数组开发的线程安全队列,使用泛型实现,可以支持保存除了string以外的对象,保存数据时会进行值拷贝。该队列的大小在构造时已经确定,为了保证不溢出,初始化时可以根据单次写入数据的多少,配置为一个较大的数值。同时该对象实现了IList接口,可以对保存在队列中的数据进行随机读写。

CircularQueue

属性名

功能描述

Count(int)

获取队列中数据的个数

Capacity(int)

获取队列能容纳的最多元素个数,该参数在构造方法里赋值

AutoLock(bool)

是否使用悲观锁(即自动获取操作的锁),默认为true

BlockWait(bool)

读取数据时,如果数据不够是否阻塞读取线程,默认为true

方法名

功能描述

Clear

清空队列。

Enqueue

数据入列。如果获取锁超时,抛出异常

TryEnqueue

数据入列。如果获取锁超时,返回false,否则返回true

Dequeue

数据出列,如果获取锁超时,抛出异常

TryDequeue

数据出列,如果获取锁超时,返回false,否则返回true

Enter

乐观锁模式下获取操作队列的锁,超时抛出异常

TryEnter

乐观锁模式下获取操作队列的锁,超时返回false

Leave

乐观锁模式下释放操作队列的锁。