public bool EnQueue(T item)
{
locker.EnterWriteLock();
var isSuccess = false;
if (keyList.Add(item))
{
var indexStart = _rear;
_rear = (indexStart + 1) % _capacity;
if (_rear == _front)
{
_front = (++_front) % _capacity;
}
valueList[indexStart] = item;
UpdateCount(1);
isSuccess = true;
}
locker.ExitWriteLock();
return(isSuccess);
}