예제 #1
0
        /// <summary>
        /// AddMsgIdCall
        /// </summary>
        /// <param name="msgId"></param>
        /// <param name="call"></param>
        /// <param name="state"></param>
        public virtual void AddMsgIdCall(int msgId, MsgDataCall call, object state = null)
        {
            MsgIdCallModel callInfo = new MsgIdCallModel()
            {
                Id = msgId, Call = call, State = state
            };

            this.MsgIdCallDic[msgId] = callInfo;
        }
예제 #2
0
        private void OnMsgIdCall(MsgData msg, MsgIdCallModel callInfo)
        {
            if (callInfo == null || callInfo.Call == null)
            {
                return;
            }

            callInfo.Call(this, msg, callInfo.State);
            callInfo.State = null;
        }
예제 #3
0
        private MsgIdCallModel GetMsgIdCall(int msgId)
        {
#if NET20
            MsgIdCallModel callInfo = this.MsgIdCallDic[msgId];
            this.MsgIdCallDic.Remove(msgId);
#else
            MsgIdCallModel callInfo;
            this.MsgIdCallDic.TryRemove(msgId, out callInfo);
#endif
            return(callInfo);
        }