public void Process() { _heartbeat.Process(); if (_msgList.Count <= 0) { return; } for (int i = 0; i < MAX_MESSAGE_PER_FRAME; i++) { object msg = null; lock (_msgList) { if (_msgList.Count > 0) { msg = _msgList[0]; _msgList.RemoveAt(0); } } if (msg != null) { NetMsgDispatcher.Trigger(Packer.GetMsgName(msg), msg); NetMsgDispatcher.Trigger(__INTERNAL_ANY_MSG, msg); } else { break; } } }