public void Push(TCPSocketToken token) { lock (this) { if (token != null && !_TokenPool.Contains(token)) { --_UsedTokenNum; token.Clear(); token.Session = null; _TokenPool.Enqueue(token); } } }
public TCPSocketToken Pop() { lock (this) { TCPSocketToken token = null; if (_TokenPool.Count > 0) { token = _TokenPool.Dequeue(); } if (token == null) { token = CreatNewToken(); } ++_UsedTokenNum; token.Clear(); return(token); } }