알 듯 모를 듯한 코드

3037 단어 코드
    :    
private EventHandler _FieldsChanged;//  
        public event EventHandler FieldsChanged //
        {
            add //
            {
                EventHandler handler2;
                EventHandler fieldsChanged = this._FieldsChanged;
                do
                {
                    handler2 = fieldsChanged;
                    EventHandler handler3 = (EventHandler)Delegate.Combine(handler2, value); //
                    // , ,
                    fieldsChanged = Interlocked.CompareExchange<EventHandler>(ref this._FieldsChanged, handler3, handler2);
                    //  http://msdn.microsoft.com/zh-cn/library/k9hz8w9t(VS.80).aspx
                }
                while (fieldsChanged != handler2);
            }
            remove //
            {
                EventHandler handler2;
                EventHandler fieldsChanged = this._FieldsChanged;
                do
                {
                    handler2 = fieldsChanged;
                    EventHandler handler3 = (EventHandler)Delegate.Remove(handler2, value);//
                    // , ,
                    fieldsChanged = Interlocked.CompareExchange<EventHandler>(ref this._FieldsChanged, handler3, handler2);
                }
                

좋은 웹페이지 즐겨찾기