//------------------------------------------------------------------------------------------------------------------------- // 处理接收到的所有消息 protected void processInput() { // 等待解锁接收流的读写,并锁定接收流 lock (mRecieveList) { int receiveCount = mRecieveList.Count; for (int i = 0; i < receiveCount; ++i) { INPUT_ELEMENT element = mRecieveList[i]; SocketPacket packetReply = createPacket(element.mType); packetReply.read(element.mData); packetReply.execute(); } mRecieveList.Clear(); } }
//------------------------------------------------------------------------------------------------------------------------- protected void processInput() { // 等待解锁接收流的读写,并锁定接收流 mInputLock.waitForUnlock(); int receiveCount = mRecieveList.Count; for (int i = 0; i < receiveCount; ++i) { mInputList.Add(mRecieveList[i]); } mRecieveList.Clear(); mInputLock.unlock(); int streamCount = mInputList.Count; for (int i = 0; i < streamCount; ++i) { INPUT_ELEMENT element = mInputList[i]; SocketPacket packetReply = createPacket(element.mType); packetReply.readData(element.mData, element.mDataSize); packetReply.execute(); } mInputList.Clear(); }