Пример #1
0
        private void OnDestroy()
        {
            OnBeforeDestroy();

            foreach (var msgRecord in mMsgRecorder)
            {
                MsgDispatcher.UnRegister(msgRecord.Name, msgRecord.OnMsgReceived);
                msgRecord.Recycle();
            }

            mMsgRecorder.Clear();
        }
Пример #2
0
        protected void UnRegisterMsg(string msgName, Action <object> onMsgReceived)
        {
            var selectedRecords = mMsgRecorder.FindAll(recorder => recorder.Name == msgName && recorder.OnMsgReceived == onMsgReceived);

            selectedRecords.ForEach(selectRecord =>
            {
                MsgDispatcher.UnRegister(selectRecord.Name,
                                         selectRecord.OnMsgReceived);
                mMsgRecorder.Remove(selectRecord);
                selectRecord.Recycle();
            });
            selectedRecords.Clear();
        }
Пример #3
0
        private static void MenuClicked()
        {
            //全部清空,确保事例有效
            MsgDispatcher.UnRegisterAll("MSG1");

            MsgDispatcher.Register("MSG1", OnMsgReceived);
            MsgDispatcher.Register("MSG1", OnMsgReceived);

            MsgDispatcher.Send("MSG1", "hello world");

            MsgDispatcher.UnRegister("MSG1", OnMsgReceived);

            MsgDispatcher.Send("MSG1", "hello");
        }