Esempio n. 1
0
 /// <summary>
 /// 触发状态改变事件
 /// </summary>
 /// <param name="e"></param>
 protected virtual void OnStatusChange(StatusChangeEventArgs e)
 {
     //--处于线程安全考虑,将委托字段的引用复制到一个临时字段中
     EventHandler<StatusChangeEventArgs> temp = 
         Interlocked.CompareExchange<EventHandler<StatusChangeEventArgs>>(ref StatusChange, null, null);
     
     //--任何方法登记了对事件的关注,就通知它们
     if (temp != null)
         temp(this, e);
 }
Esempio n. 2
0
        /// <summary>
        /// 触发状态改变事件
        /// </summary>
        /// <param name="e"></param>
        protected virtual void OnStatusChange(StatusChangeEventArgs e)
        {
            //--处于线程安全考虑,将委托字段的引用复制到一个临时字段中
            EventHandler <StatusChangeEventArgs> temp =
                Interlocked.CompareExchange <EventHandler <StatusChangeEventArgs> >(ref StatusChange, null, null);

            //--任何方法登记了对事件的关注,就通知它们
            if (temp != null)
            {
                temp(this, e);
            }
        }