/// <summary> /// 逻辑更新 /// </summary> /// <returns></returns> public virtual void Update() { if (this.m_cReceiveQueue.Count > 0) { lock (this.m_cReceiveQueue) { Queue <StreamBuffer> .Enumerator iter = m_cReceiveQueue.GetEnumerator(); while (iter.MoveNext()) { m_cDispatchQueue.Enqueue(iter.Current); } this.m_cReceiveQueue.Clear(); } } for (int i = 0; i < 16; i++) { if (this.m_cDispatchQueue.Count > 0) { StreamBuffer sb = this.m_cDispatchQueue.Dequeue(); m_sessionListener.OnPktReceive(sb); } else { break; } } m_sessionListener.OnDispatch(); }