?????????????????????????????????????????????????????????“????”????У???????????????????????????????“??”???????У?????????????????С????????

??????????????????????????壬?????????????DelegateSubject.Notify????????????????????????????? tempNotifyHander(Message)???????????е???????????÷??????????????????????????????????????????????????NewMessage???????γ?????????????????????????????????е???????ε??á?

?????????

??????????в???????÷??????????????????????ú?????????????????????????????????????????

????????????????????

???????????????????е?????????÷?????????????????????????????????????????????е????????????籣????“??”??????У???????????????????????????“????÷??????????????????”????????????Delegate.GetInvocationList?????????????????????????????????????????????????????????£?

//?????з??????????ù?????????????????
        public void Notify()
        {
            NotifyEventHandler tempNotifyHander = NotifyObservers;
            if (tempNotifyHander != null)
            {
                //tempNotifyHander(Message);
                //????????
                Delegate[] chain = tempNotifyHander.GetInvocationList();              
                foreach (Delegate item in chain)
                {
                    try
                    {
                        item.DynamicInvoke(new object[] { Message });//???ε?????н?????
                    }
                    catch (Exception ex)              //?????????????????????
                    {
                        Console.WriteLine(ex.InnerException.Message);//????????
                        continue;                     //??????????????
                    }
                }
            }
        }

????ps?????????????????е????????????????Delegate.BeginInvoke???????д????