Exemplo n.º 1
0
        /// <summary>
        /// Subscribe an event
        /// </summary>
        /// <param name="subscriber"></param>
        /// <param name="eventName"></param>
        /// <param name="handler"></param>
        public void Subscribe(object subscriber, string eventName, SkusventHandler handler)
        {
            if (subscriber == null)
            {
                throw new ArgumentNullException("subscriber", "Parameter should not be null");
            }
            if (handler == null)
            {
                throw new ArgumentNullException("handler", "Parameter should not be null");
            }

            if (!m_EventLock.Keys.Contains(eventName))
            {
                m_EventLock.Add(eventName, new ReaderWriterLock());
            }
            m_EventLock[eventName].AcquireWriterLock(Timeout.Infinite);

            try
            {
                UnSubscribe(subscriber, eventName);
                CreateSubscriber(eventName);

                var subscriberlist = FindSubscriber(eventName);
                subscriberlist.Add(new SubscriberInfo(subscriber, handler));
            }
            finally
            {
                m_EventLock[eventName].ReleaseWriterLock();
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Subscribe an event
        /// </summary>
        /// <param name="subscriber"></param>
        /// <param name="eventName"></param>
        /// <param name="handler"></param>
        public void Subscribe(object subscriber, string eventName, SkusventHandler handler)
        {
            if (subscriber == null)
                throw new ArgumentNullException("subscriber", "Parameter should not be null");
            if (handler == null)
                throw new ArgumentNullException("handler", "Parameter should not be null");

            if (!m_EventLock.Keys.Contains(eventName))
                m_EventLock.Add(eventName, new ReaderWriterLock());
            m_EventLock[eventName].AcquireWriterLock(Timeout.Infinite);

            try
            {
                UnSubscribe(subscriber, eventName);
                CreateSubscriber(eventName);

                var subscriberlist = FindSubscriber(eventName);
                subscriberlist.Add(new SubscriberInfo(subscriber, handler));
            }
            finally
            {
                m_EventLock[eventName].ReleaseWriterLock();
            }
        }
Exemplo n.º 3
0
 public SubscriberInfo(object subsciber, SkusventHandler handler)
 {
     Subscriber = subsciber;
     Handler    = handler;
 }
Exemplo n.º 4
0
 public SubscriberInfo(object subsciber, SkusventHandler handler)
 {
     Subscriber = subsciber;
     Handler = handler;
 }