Exemple #1
0
 /// <summary>
 /// 
 /// </summary>
 public void AddRespondMsg(RespondObj resObj)
 {
     lock (mRespondLocker)
     {
         mResponds.Enqueue(resObj);
     }
 }
        // 子线程调用
        public void ParseAndAddMsg(long lSessionId)
        {
            lock (mSendLocker)
            {
                BinaryStream bs = new BinaryStream();
                bs.DeconstructMessage();
                int nMsgCount = mSendMsgs.Count;
                bs.Write(nMsgCount);
                for (int i = 0; i < nMsgCount; ++i)
                {
                    Message msg = mSendMsgs.Dequeue();
                    msg.DeconstructObj();
                    bs.Write(msg.GetWriteBuffer());
                }

                RespondObj resObj = new RespondObj();
                resObj.SessionId = lSessionId;
                resObj.RespondString = Convert.ToBase64String(bs.GetWriteBuffer());
                // 加入到待发送列表即可
                MsgHandler.GetIns().AddRespondMsg(resObj);
            }
        }