/// <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(); } }
/// <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(); } }
public SubscriberInfo(object subsciber, SkusventHandler handler) { Subscriber = subsciber; Handler = handler; }