public static void RemoveHandler(object obj, RoadEvent e, RoadEventHandler del) { if (obj == null) { throw new ArgumentNullException("obj", "No object given!"); } if (e == null) { throw new ArgumentNullException("e", "No event type given!"); } if (del == null) { throw new ArgumentNullException("del", "No event handler given!"); } try { GameEventMgr.m_lock.AcquireReaderLock(3000); try { RoadEventHandlerCollection col = (RoadEventHandlerCollection)GameEventMgr.m_GameObjectEventCollections[obj]; if (col != null) { col.RemoveHandler(e, del); } } finally { GameEventMgr.m_lock.ReleaseReaderLock(); } } catch (ApplicationException ex) { LogProvider.Default.Error("Failed to remove local event handler!", ex); } }
/// <summary> /// Removes a global event handler. /// You need to have registered the event before being able to remove it. /// </summary> /// <param name="e">The event type from which to deregister</param> /// <param name="del">The event handler to deregister for this event type</param> /// <exception cref="ArgumentNullException">If one of the parameters is null</exception> public static void RemoveHandler(RoadEvent e, RoadEventHandler del) { //Test the parameters if (e == null) { throw new ArgumentNullException("e", "No event type given!"); } if (del == null) { throw new ArgumentNullException("del", "No event handler given!"); } m_GlobalHandlerCollection.RemoveHandler(e, del); }
/// <summary> /// Removes a single event handler from an object. /// You need to have registered the event before being /// able to remove it. /// </summary> /// <param name="obj">The object that needs to be the sender of events</param> /// <param name="e">The event type from which to deregister</param> /// <param name="del">The event handler to deregister for this event type</param> /// <exception cref="ArgumentNullException">If one of the parameters is null</exception> public static void RemoveHandler(object obj, RoadEvent e, RoadEventHandler del) { //Test the parameters if (obj == null) { throw new ArgumentNullException("obj", "No object given!"); } if (e == null) { throw new ArgumentNullException("e", "No event type given!"); } if (del == null) { throw new ArgumentNullException("del", "No event handler given!"); } try { m_lock.AcquireReaderLock(TIMEOUT); try { RoadEventHandlerCollection col = (RoadEventHandlerCollection)m_GameObjectEventCollections[obj]; if (col != null) { col.RemoveHandler(e, del); } } finally { m_lock.ReleaseReaderLock(); } } catch (ApplicationException ex) { if (log.IsErrorEnabled) { log.Error("Failed to remove local event handler!", ex); } } }
public static void RemoveHandler(object obj, RoadEvent e, RoadEventHandler del) { if (obj == null) { throw new ArgumentNullException("obj", "No object given!"); } if (e == null) { throw new ArgumentNullException("e", "No event type given!"); } if (del == null) { throw new ArgumentNullException("del", "No event handler given!"); } try { GameEventMgr.m_lock.AcquireReaderLock(3000); try { RoadEventHandlerCollection roadEventHandlerCollection = (RoadEventHandlerCollection)GameEventMgr.m_GameObjectEventCollections[obj]; if (roadEventHandlerCollection != null) { roadEventHandlerCollection.RemoveHandler(e, del); } } finally { GameEventMgr.m_lock.ReleaseReaderLock(); } } catch (ApplicationException exception) { if (GameEventMgr.log.IsErrorEnabled) { GameEventMgr.log.Error("Failed to remove local event handler!", exception); } } }